Files
gtav-src/script/dev_ng/singleplayer/include/public/ped_component_public.sch
T
2025-09-29 00:52:08 +02:00

36584 lines
1.8 MiB
Plaintext
Executable File

//////////////////////////////////////////////////////////////////////////////////////////
// //
// MISSION NAME : ped_component_public.sch //
// AUTHOR : Kenneth Ross //
// DESCRIPTION : Handles all the component related procs such as browsing, //
// buying, removing, and changing. //
// //
//////////////////////////////////////////////////////////////////////////////////////////
USING "rage_builtins.sch"
USING "globals.sch"
USING "commands_ped.sch"
USING "ped_component_data.sch"
USING "stats_public.sch"
USING "Net_Scoring_Common.sch"
USING "screens_header_private.sch"
#IF IS_DEBUG_BUILD
FUNC STRING DEBUG_get_string_from_namehash(INT iNameHash)
SWITCH iNameHash
CASE HASH("FM_Ind_M_Tshirt_000") RETURN "FM_Ind_M_Tshirt_000" BREAK
CASE HASH("FM_Ind_M_Tshirt_001") RETURN "FM_Ind_M_Tshirt_001" BREAK
CASE HASH("FM_Ind_M_Tshirt_002") RETURN "FM_Ind_M_Tshirt_002" BREAK
CASE HASH("FM_Ind_M_Tshirt_003") RETURN "FM_Ind_M_Tshirt_003" BREAK
CASE HASH("FM_Ind_M_Tshirt_004") RETURN "FM_Ind_M_Tshirt_004" BREAK
CASE HASH("FM_Ind_M_Tshirt_005") RETURN "FM_Ind_M_Tshirt_005" BREAK
CASE HASH("FM_Ind_M_Tshirt_007") RETURN "FM_Ind_M_Tshirt_007" BREAK
CASE HASH("FM_Ind_M_Tshirt_008") RETURN "FM_Ind_M_Tshirt_008" BREAK
CASE HASH("FM_Ind_M_Tshirt_009") RETURN "FM_Ind_M_Tshirt_009" BREAK
CASE HASH("FM_Ind_M_Tshirt_010") RETURN "FM_Ind_M_Tshirt_010" BREAK
CASE HASH("FM_Ind_M_Tshirt_011") RETURN "FM_Ind_M_Tshirt_011" BREAK
CASE HASH("FM_Ind_M_Tshirt_012") RETURN "FM_Ind_M_Tshirt_012" BREAK
CASE HASH("FM_Ind_M_Tshirt_013") RETURN "FM_Ind_M_Tshirt_013" BREAK
CASE HASH("FM_Ind_M_Tshirt_014") RETURN "FM_Ind_M_Tshirt_014" BREAK
CASE HASH("FM_Ind_M_Tshirt_015") RETURN "FM_Ind_M_Tshirt_015" BREAK
CASE HASH("FM_Ind_M_Tshirt_017") RETURN "FM_Ind_M_Tshirt_017" BREAK
CASE HASH("FM_Ind_M_Tshirt_019") RETURN "FM_Ind_M_Tshirt_019" BREAK
CASE HASH("FM_Ind_M_Tshirt_020") RETURN "FM_Ind_M_Tshirt_020" BREAK
CASE HASH("FM_Ind_M_Tshirt_021") RETURN "FM_Ind_M_Tshirt_021" BREAK
CASE HASH("FM_Ind_M_Tshirt_022") RETURN "FM_Ind_M_Tshirt_022" BREAK
CASE HASH("FM_Ind_M_Tshirt_023") RETURN "FM_Ind_M_Tshirt_023" BREAK
CASE HASH("FM_Ind_M_Tshirt_024") RETURN "FM_Ind_M_Tshirt_024" BREAK
CASE HASH("FM_Ind_M_Tshirt_025") RETURN "FM_Ind_M_Tshirt_025" BREAK
CASE HASH("FM_Ind_M_Tshirt_026") RETURN "FM_Ind_M_Tshirt_026" BREAK
CASE HASH("FM_Ind_M_Award_000") RETURN "FM_Ind_M_Award_000" BREAK
CASE HASH("FM_Ind_F_Tshirt_000") RETURN "FM_Ind_F_Tshirt_000" BREAK
CASE HASH("FM_Ind_F_Tshirt_001") RETURN "FM_Ind_F_Tshirt_001" BREAK
CASE HASH("FM_Ind_F_Tshirt_002") RETURN "FM_Ind_F_Tshirt_002" BREAK
CASE HASH("FM_Ind_F_Tshirt_003") RETURN "FM_Ind_F_Tshirt_003" BREAK
CASE HASH("FM_Ind_F_Tshirt_004") RETURN "FM_Ind_F_Tshirt_004" BREAK
CASE HASH("FM_Ind_F_Tshirt_005") RETURN "FM_Ind_F_Tshirt_005" BREAK
CASE HASH("FM_Ind_F_Tshirt_007") RETURN "FM_Ind_F_Tshirt_007" BREAK
CASE HASH("FM_Ind_F_Tshirt_008") RETURN "FM_Ind_F_Tshirt_008" BREAK
CASE HASH("FM_Ind_F_Tshirt_009") RETURN "FM_Ind_F_Tshirt_009" BREAK
CASE HASH("FM_Ind_F_Tshirt_010") RETURN "FM_Ind_F_Tshirt_010" BREAK
CASE HASH("FM_Ind_F_Tshirt_011") RETURN "FM_Ind_F_Tshirt_011" BREAK
CASE HASH("FM_Ind_F_Tshirt_012") RETURN "FM_Ind_F_Tshirt_012" BREAK
CASE HASH("FM_Ind_F_Tshirt_013") RETURN "FM_Ind_F_Tshirt_013" BREAK
CASE HASH("FM_Ind_F_Tshirt_014") RETURN "FM_Ind_F_Tshirt_014" BREAK
CASE HASH("FM_Ind_F_Tshirt_015") RETURN "FM_Ind_F_Tshirt_015" BREAK
CASE HASH("FM_Ind_F_Tshirt_017") RETURN "FM_Ind_F_Tshirt_017" BREAK
CASE HASH("FM_Ind_F_Tshirt_019") RETURN "FM_Ind_F_Tshirt_019" BREAK
CASE HASH("FM_Ind_F_Tshirt_020") RETURN "FM_Ind_F_Tshirt_020" BREAK
CASE HASH("FM_Ind_F_Tshirt_021") RETURN "FM_Ind_F_Tshirt_021" BREAK
CASE HASH("FM_Ind_F_Tshirt_022") RETURN "FM_Ind_F_Tshirt_022" BREAK
CASE HASH("FM_Ind_F_Tshirt_023") RETURN "FM_Ind_F_Tshirt_023" BREAK
CASE HASH("FM_Ind_F_Tshirt_024") RETURN "FM_Ind_F_Tshirt_024" BREAK
CASE HASH("FM_Ind_F_Tshirt_025") RETURN "FM_Ind_F_Tshirt_025" BREAK
CASE HASH("FM_Ind_F_Tshirt_026") RETURN "FM_Ind_F_Tshirt_026" BREAK
CASE HASH("FM_Ind_F_Award_000") RETURN "FM_Ind_F_Award_000" BREAK
ENDSWITCH
SWITCH iNameHash
CASE HASH("ARM_LEFT_1") RETURN "ARM_LEFT_1" BREAK
CASE HASH("ARM_LEFT_2") RETURN "ARM_LEFT_2" BREAK
CASE HASH("ARM_LEFT_ELBOW") RETURN "ARM_LEFT_ELBOW" BREAK
CASE HASH("ARM_LEFT_FULL_SLEEVE") RETURN "ARM_LEFT_FULL_SLEEVE" BREAK
CASE HASH("ARM_LEFT_LOWER_INNER") RETURN "ARM_LEFT_LOWER_INNER" BREAK
CASE HASH("ARM_LEFT_LOWER_OUTER") RETURN "ARM_LEFT_LOWER_OUTER" BREAK
CASE HASH("ARM_LEFT_LOWER_SLEEVE") RETURN "ARM_LEFT_LOWER_SLEEVE" BREAK
CASE HASH("ARM_LEFT_SHORT_SLEEVE") RETURN "ARM_LEFT_SHORT_SLEEVE" BREAK
CASE HASH("ARM_LEFT_SHOULDER") RETURN "ARM_LEFT_SHOULDER" BREAK
CASE HASH("ARM_LEFT_SLEEVE") RETURN "ARM_LEFT_SLEEVE" BREAK
CASE HASH("ARM_LEFT_UPPER_BICEP") RETURN "ARM_LEFT_UPPER_BICEP" BREAK
CASE HASH("ARM_LEFT_UPPER_SIDE") RETURN "ARM_LEFT_UPPER_SIDE" BREAK
CASE HASH("ARM_LEFT_UPPER_SLEEVE") RETURN "ARM_LEFT_UPPER_SLEEVE" BREAK
CASE HASH("ARM_LEFT_UPPER_TRICEP") RETURN "ARM_LEFT_UPPER_TRICEP" BREAK
CASE HASH("ARM_LEFT_WRIST") RETURN "ARM_LEFT_WRIST" BREAK
CASE HASH("ARM_RIGHT") RETURN "ARM_RIGHT" BREAK
CASE HASH("ARM_RIGHT_ELBOW") RETURN "ARM_RIGHT_ELBOW" BREAK
CASE HASH("ARM_RIGHT_FULL_SLEEVE") RETURN "ARM_RIGHT_FULL_SLEEVE" BREAK
CASE HASH("ARM_RIGHT_LOWER") RETURN "ARM_RIGHT_LOWER" BREAK
CASE HASH("ARM_RIGHT_LOWER_INNER") RETURN "ARM_RIGHT_LOWER_INNER" BREAK
CASE HASH("ARM_RIGHT_LOWER_OUTER") RETURN "ARM_RIGHT_LOWER_OUTER" BREAK
CASE HASH("ARM_RIGHT_LOWER_SLEEVE") RETURN "ARM_RIGHT_LOWER_SLEEVE" BREAK
CASE HASH("ARM_RIGHT_SHORT_SLEEVE") RETURN "ARM_RIGHT_SHORT_SLEEVE" BREAK
CASE HASH("ARM_RIGHT_SHOULDER") RETURN "ARM_RIGHT_SHOULDER" BREAK
CASE HASH("ARM_RIGHT_UPPER_BICEP") RETURN "ARM_RIGHT_UPPER_BICEP" BREAK
CASE HASH("ARM_RIGHT_UPPER_SIDE") RETURN "ARM_RIGHT_UPPER_SIDE" BREAK
CASE HASH("ARM_RIGHT_UPPER_SLEEVE") RETURN "ARM_RIGHT_UPPER_SLEEVE" BREAK
CASE HASH("ARM_RIGHT_UPPER_TRICEP") RETURN "ARM_RIGHT_UPPER_TRICEP" BREAK
CASE HASH("ARM_RIGHT_WRIST") RETURN "ARM_RIGHT_WRIST" BREAK
CASE HASH("BACK_1") RETURN "BACK_1" BREAK
CASE HASH("BACK_2") RETURN "BACK_2" BREAK
CASE HASH("BACK_3") RETURN "BACK_3" BREAK
CASE HASH("BACK_4") RETURN "BACK_4" BREAK
CASE HASH("BACK_FULL") RETURN "BACK_FULL" BREAK
CASE HASH("BACK_FULL_ARMS_FULL_BACK") RETURN "BACK_FULL_ARMS_FULL_BACK" BREAK
CASE HASH("BACK_FULL_SHORT") RETURN "BACK_FULL_SHORT" BREAK
CASE HASH("BACK_LOWER") RETURN "BACK_LOWER" BREAK
CASE HASH("BACK_LOWER_LEFT") RETURN "BACK_LOWER_LEFT" BREAK
CASE HASH("BACK_LOWER_MID") RETURN "BACK_LOWER_MID" BREAK
CASE HASH("BACK_LOWER_RIGHT") RETURN "BACK_LOWER_RIGHT" BREAK
CASE HASH("BACK_MID") RETURN "BACK_MID" BREAK
CASE HASH("BACK_UPPER") RETURN "BACK_UPPER" BREAK
CASE HASH("BACK_UPPER_LEFT") RETURN "BACK_UPPER_LEFT" BREAK
CASE HASH("BACK_UPPER_RIGHT") RETURN "BACK_UPPER_RIGHT" BREAK
CASE HASH("CHEST_FULL") RETURN "CHEST_FULL" BREAK
CASE HASH("CHEST_LEFT") RETURN "CHEST_LEFT" BREAK
CASE HASH("CHEST_LEFT_UPPER") RETURN "CHEST_LEFT_UPPER" BREAK
CASE HASH("CHEST_MID") RETURN "CHEST_MID" BREAK
CASE HASH("CHEST_RIGHT") RETURN "CHEST_RIGHT" BREAK
CASE HASH("CHEST_STOM") RETURN "CHEST_STOM" BREAK
CASE HASH("CHEST_STOM_FULL") RETURN "CHEST_STOM_FULL" BREAK
CASE HASH("CHEST_UPPER_LEFT") RETURN "CHEST_UPPER_LEFT" BREAK
CASE HASH("CHEST_UPPER_RIGHT") RETURN "CHEST_UPPER_RIGHT" BREAK
CASE HASH("crewLogo") RETURN "crewLogo" BREAK
CASE HASH("FACE") RETURN "FACE" BREAK
CASE HASH("FOOT_LEFT") RETURN "FOOT_LEFT" BREAK
CASE HASH("FOOT_RIGHT") RETURN "FOOT_RIGHT" BREAK
CASE HASH("hairOverlay") RETURN "hairOverlay" BREAK
CASE HASH("HAND_LEFT") RETURN "HAND_LEFT" BREAK
CASE HASH("HAND_RIGHT") RETURN "HAND_RIGHT" BREAK
CASE HASH("HEAD_LEFT") RETURN "HEAD_LEFT" BREAK
CASE HASH("HEAD_RIGHT") RETURN "HEAD_RIGHT" BREAK
CASE HASH("LEG_LEFT") RETURN "LEG_LEFT" BREAK
CASE HASH("LEG_LEFT_ANKLE") RETURN "LEG_LEFT_ANKLE" BREAK
CASE HASH("LEG_LEFT_CALF") RETURN "LEG_LEFT_CALF" BREAK
CASE HASH("LEG_LEFT_FULL_BACK") RETURN "LEG_LEFT_FULL_BACK" BREAK
CASE HASH("LEG_LEFT_FULL_FRONT") RETURN "LEG_LEFT_FULL_FRONT" BREAK
CASE HASH("LEG_LEFT_FULL_SLEEVE") RETURN "LEG_LEFT_FULL_SLEEVE" BREAK
CASE HASH("LEG_LEFT_KNEE") RETURN "LEG_LEFT_KNEE" BREAK
CASE HASH("LEG_LEFT_LOWER_BACK") RETURN "LEG_LEFT_LOWER_BACK" BREAK
CASE HASH("LEG_LEFT_LOWER_FRONT") RETURN "LEG_LEFT_LOWER_FRONT" BREAK
CASE HASH("LEG_LEFT_LOWER_INNER") RETURN "LEG_LEFT_LOWER_INNER" BREAK
CASE HASH("LEG_LEFT_LOWER_OUTER") RETURN "LEG_LEFT_LOWER_OUTER" BREAK
CASE HASH("LEG_LEFT_LOWER_SLEEVE") RETURN "LEG_LEFT_LOWER_SLEEVE" BREAK
CASE HASH("LEG_LEFT_UPPER_BACK") RETURN "LEG_LEFT_UPPER_BACK" BREAK
CASE HASH("LEG_LEFT_UPPER_FRONT") RETURN "LEG_LEFT_UPPER_FRONT" BREAK
CASE HASH("LEG_LEFT_UPPER_INNER") RETURN "LEG_LEFT_UPPER_INNER" BREAK
CASE HASH("LEG_LEFT_UPPER_OUTER") RETURN "LEG_LEFT_UPPER_OUTER" BREAK
CASE HASH("LEG_LEFT_UPPER_SLEEVE") RETURN "LEG_LEFT_UPPER_SLEEVE" BREAK
CASE HASH("LEG_LEG") RETURN "LEG_LEG" BREAK
CASE HASH("LEG_RIGHT") RETURN "LEG_RIGHT" BREAK
CASE HASH("LEG_RIGHT_ANKLE") RETURN "LEG_RIGHT_ANKLE" BREAK
CASE HASH("LEG_RIGHT_CALF") RETURN "LEG_RIGHT_CALF" BREAK
CASE HASH("LEG_RIGHT_FULL_BACK") RETURN "LEG_RIGHT_FULL_BACK" BREAK
CASE HASH("LEG_RIGHT_FULL_FRONT") RETURN "LEG_RIGHT_FULL_FRONT" BREAK
CASE HASH("LEG_RIGHT_FULL_SLEEVE") RETURN "LEG_RIGHT_FULL_SLEEVE" BREAK
CASE HASH("LEG_RIGHT_KNEE") RETURN "LEG_RIGHT_KNEE" BREAK
CASE HASH("LEG_RIGHT_LOWER_BACK") RETURN "LEG_RIGHT_LOWER_BACK" BREAK
CASE HASH("LEG_RIGHT_LOWER_FRONT") RETURN "LEG_RIGHT_LOWER_FRONT" BREAK
CASE HASH("LEG_RIGHT_LOWER_INNER") RETURN "LEG_RIGHT_LOWER_INNER" BREAK
CASE HASH("LEG_RIGHT_LOWER_OUTER") RETURN "LEG_RIGHT_LOWER_OUTER" BREAK
CASE HASH("LEG_RIGHT_LOWER_SLEEVE") RETURN "LEG_RIGHT_LOWER_SLEEVE" BREAK
CASE HASH("LEG_RIGHT_UPPER_BACK") RETURN "LEG_RIGHT_UPPER_BACK" BREAK
CASE HASH("LEG_RIGHT_UPPER_FRONT") RETURN "LEG_RIGHT_UPPER_FRONT" BREAK
CASE HASH("LEG_RIGHT_UPPER_INNER") RETURN "LEG_RIGHT_UPPER_INNER" BREAK
CASE HASH("LEG_RIGHT_UPPER_OUTER") RETURN "LEG_RIGHT_UPPER_OUTER" BREAK
CASE HASH("LEG_RIGHT_UPPER_SLEEVE") RETURN "LEG_RIGHT_UPPER_SLEEVE" BREAK
CASE HASH("NECK_BACK") RETURN "NECK_BACK" BREAK
CASE HASH("NECK_FRONT") RETURN "NECK_FRONT" BREAK
CASE HASH("NECK_LEFT") RETURN "NECK_LEFT" BREAK
CASE HASH("NECK_LEFT_BACK") RETURN "NECK_LEFT_BACK" BREAK
CASE HASH("NECK_LEFT_FULL") RETURN "NECK_LEFT_FULL" BREAK
CASE HASH("NECK_RIGHT") RETURN "NECK_RIGHT" BREAK
CASE HASH("NECK_RIGHT_2") RETURN "NECK_RIGHT_2" BREAK
CASE HASH("NECK_RIGHT_BACK") RETURN "NECK_RIGHT_BACK" BREAK
CASE HASH("NECK_RIGHT_FULL") RETURN "NECK_RIGHT_FULL" BREAK
CASE HASH("SIDE_RIGHT") RETURN "SIDE_RIGHT" BREAK
CASE HASH("STOMACH_FULL") RETURN "STOMACH_FULL" BREAK
CASE HASH("STOMACH_LEFT") RETURN "STOMACH_LEFT" BREAK
CASE HASH("STOMACH_LOWER") RETURN "STOMACH_LOWER" BREAK
CASE HASH("STOMACH_LOWER_LEFT") RETURN "STOMACH_LOWER_LEFT" BREAK
CASE HASH("STOMACH_LOWER_RIGHT") RETURN "STOMACH_LOWER_RIGHT" BREAK
CASE HASH("STOMACH_MID") RETURN "STOMACH_MID" BREAK
CASE HASH("STOMACH_RIGHT") RETURN "STOMACH_RIGHT" BREAK
CASE HASH("STOMACH_UPPER") RETURN "STOMACH_UPPER" BREAK
CASE HASH("STOMACH_UPPER_LEFT") RETURN "STOMACH_UPPER_LEFT" BREAK
CASE HASH("STOMACH_UPPER_RIGHT") RETURN "STOMACH_UPPER_RIGHT" BREAK
CASE HASH("TORSO_SIDE_LEFT") RETURN "TORSO_SIDE_LEFT" BREAK
CASE HASH("TORSO_SIDE_RIGHT") RETURN "TORSO_SIDE_RIGHT" BREAK
CASE HASH("torsoDecal") RETURN "torsoDecal" BREAK
ENDSWITCH
TEXT_LABEL_63 str = iNameHash
RETURN GET_STRING_FROM_STRING(str, 0, GET_LENGTH_OF_LITERAL_STRING(str))
ENDFUNC
#ENDIF
/// PURPOSE: Checks to see if the component item is available for the ped model
FUNC BOOL IS_PED_COMP_ITEM_AVAILABLE_SP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
RETURN (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
ENDFUNC
/// PURPOSE: Checks to see if the component item is available for the ped model
FUNC BOOL IS_PED_COMP_ITEM_AVAILABLE_MP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
RETURN (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
ENDFUNC
/// PURPOSE: Checks to see if the component item has been used
FUNC BOOL IS_PED_COMPONENT_ITEM_NEW_SP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
RETURN (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_NEW_BIT))
ENDFUNC
/// PURPOSE: Checks to see if the component item has been used
FUNC BOOL IS_PED_COMPONENT_ITEM_NEW_MP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
RETURN (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_NEW_BIT))
ENDFUNC
/// PURPOSE: Returns TRUE if the specificed outfit item is the same as the default outfit
FUNC BOOL IS_PED_COMPONENT_DEFAULT_OUTFIT(MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM eOutfit)
PED_COMP_OUTFIT_DATA_STRUCT sDefaultOutfit = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, OUTFIT_DEFAULT)
PED_COMP_OUTFIT_DATA_STRUCT sOtherOutfit = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eOutfit)
INT i
FOR i = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sDefaultOutfit.eItems[i] != sOtherOutfit.eItems[i]
AND sDefaultOutfit.eItems[i] != DUMMY_PED_COMP
AND sOtherOutfit.eItems[i] != DUMMY_PED_COMP
RETURN FALSE
ENDIF
ENDFOR
RETURN TRUE
ENDFUNC
/// PURPOSE: Checks to see if the component item is current for the ped
/// NOTE: If this command is used in a loop we may run over the script instructions per frame limit
FUNC BOOL IS_PED_COMP_ITEM_CURRENT_MP(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
IF IS_PED_INJURED(ped)
RETURN FALSE
ENDIF
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
PED_COMP_NAME_ENUM eCurrentItem
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
INT iLastDLCNameItem = g_iLastDLCItemNameHash
INT iLastDLCLockHash = g_iLastDLCItemLockHash
// First check that the ped model can have the component item
IF NOT(IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
RETURN FALSE
ENDIF
// -----------OUTFITS -----------------------------------------
IF eType = COMP_TYPE_OUTFIT
INT i, j, k, iLoop
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
REPEAT 7 iLoop
SWITCH iLoop
CASE 0 i = ENUM_TO_INT(COMP_TYPE_BERD) BREAK
CASE 1 i = ENUM_TO_INT(COMP_TYPE_LEGS) BREAK
CASE 2 i = ENUM_TO_INT(COMP_TYPE_FEET) BREAK
CASE 3 i = ENUM_TO_INT(COMP_TYPE_TEETH) BREAK
CASE 4 i = ENUM_TO_INT(COMP_TYPE_SPECIAL) BREAK
CASE 5 i = ENUM_TO_INT(COMP_TYPE_JBIB) BREAK
CASE 6 i = ENUM_TO_INT(COMP_TYPE_PROPGROUP) BREAK
ENDSWITCH
IF sOutfitData.eItems[i] <> DUMMY_PED_COMP
IF NOT IS_PED_COMP_ITEM_CURRENT_MP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i])
// MP OUTFITS ARE ALL ONE PIECE - NO MIX/MATCH ALLOWED
PRINTLN("IS_PED_COMP_ITEM_CURRENT_MP - Outfit item not current: eType = ", GET_PED_COMP_TYPE_STRING(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)), " eItem = ", sOutfitData.eItems[i])
g_iLastDLCItemNameHash = iLastDLCNameItem
g_iLastDLCItemLockHash = iLastDLCLockHash
RETURN FALSE
// -----------PROPGROUP FOR OUTFIT----------------------------------------
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) = COMP_TYPE_PROPGROUP
// Grab all the prop data for this outfits propgroup
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfitData.eItems[i])
// For each item in the propgroup
FOR j = 0 TO NUMBER_OF_PED_PROP_TYPES-1
IF NOT IS_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_PROPS, sPropGroupData.eItems[j])
// Find the current item and check to see if it is safe to mix with this outfit
FOR k = 0 TO PED_COMPONENTS_PROPGROUPS-1
// If this prop has the same anchor as the current prop
g_sTempCompData[2] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, k))
IF g_sTempCompData[2].ePropPos = INT_TO_ENUM(PED_PROP_POSITION, j)
IF IS_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, k))
IF NOT CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, k), sOutfitData, g_sTempCompData[2])
// This component item is not safe to mix with this outfit
g_iLastDLCItemNameHash = iLastDLCNameItem
g_iLastDLCItemLockHash = iLastDLCLockHash
RETURN FALSE
ENDIF
ENDIF
ENDIF
ENDFOR
ENDIF
ENDFOR
ELSE
// -------NORMAL ITEM IN OUTFIT -------------------------------------
// Lookup the current item and check to see if it is safe to mix with this outfit
eCurrentItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i))
g_sTempCompData[2] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), eCurrentItem)
IF NOT CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), eCurrentItem, sOutfitData, g_sTempCompData[2])
// This component item is not safe to mix with this outfit
g_iLastDLCItemNameHash = iLastDLCNameItem
g_iLastDLCItemLockHash = iLastDLCLockHash
RETURN FALSE
ENDIF
ENDIF
ENDIF
ENDIF
ENDREPEAT
// Check the DECL for t-shirt overlays.
IF ENUM_TO_INT(sOutfitData.eItems[COMP_TYPE_DECL]) != 0 AND ENUM_TO_INT(sOutfitData.eItems[COMP_TYPE_DECL]) != 1849449579 // 1849449579 = "0"
AND sOutfitData.bUsesTattooDecals
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH, g_iPedComponentSlot) != ENUM_TO_INT(sOutfitData.eItems[COMP_TYPE_DECL])
g_iLastDLCItemNameHash = iLastDLCNameItem
g_iLastDLCItemLockHash = iLastDLCLockHash
RETURN FALSE
ENDIF
ENDIF
// None of the items in this outfit are invalid
g_iLastDLCItemNameHash = iLastDLCNameItem
g_iLastDLCItemLockHash = iLastDLCLockHash
RETURN TRUE
// -------PROPGROUPS -----------------------------------------------------
ELIF eType = COMP_TYPE_PROPGROUP
INT i
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, eItem)
FOR i = 0 TO NUMBER_OF_PED_PROP_TYPES-1
IF NOT IS_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_PROPS, sPropGroupData.eItems[i])
//CPRINTLN(DEBUG_PED_COMP, "This prop item is invalid for this group: sPropGroupData.eItems[i]= ", sPropGroupData.eItems[i])
RETURN FALSE
ENDIF
ENDFOR
//CPRINTLN(DEBUG_PED_COMP, "None of the prop items in this group are invalid")
RETURN TRUE
// ------------PROPS-----------------------------------------------------
ELIF eType = COMP_TYPE_PROPS
IF GET_PED_PROP_INDEX(ped, g_sTempCompData[1].ePropPos) = g_sTempCompData[1].iDrawable
AND (GET_PED_PROP_TEXTURE_INDEX(ped, g_sTempCompData[1].ePropPos) = g_sTempCompData[1].iTexture OR g_sTempCompData[1].iDrawable = -1)
// Prop item is current
RETURN TRUE
ENDIF
// Check DLC variant
IF g_sTempCompData[1].ePropPos = ANCHOR_HEAD
AND (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
AND GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(g_iLastDLCItemNameHash) > 0
INT iAltProp
INT iRetNameHash, iRetPropEnum, iRetPropPos
INT iAltPropCount = GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(g_iLastDLCItemNameHash)
scrShopPedProp propItem
REPEAT iAltPropCount iAltProp
GET_VARIANT_PROP(g_iLastDLCItemNameHash, iAltProp, iRetNameHash, iRetPropEnum, iRetPropPos)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
INIT_SHOP_PED_PROP(propItem)
GET_SHOP_PED_PROP(iRetNameHash, propItem)
IF propItem.m_propIndex = GET_PED_PROP_INDEX(ped, g_sTempCompData[1].ePropPos)
AND propItem.m_textureIndex = GET_PED_PROP_TEXTURE_INDEX(ped, g_sTempCompData[1].ePropPos)
// Alt prop item is current
RETURN TRUE
ENDIF
ENDIF
ENDREPEAT
ENDIF
ELSE
// ---------NORMAL ITEMS-------------------------------------------
IF g_sTempCompData[1].iDrawable = GET_PED_DRAWABLE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType))
AND g_sTempCompData[1].iTexture = GET_PED_TEXTURE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType))
// Component item is current
RETURN TRUE
ENDIF
// Not current, try dress / non dress version for legs...
IF eType = COMP_TYPE_LEGS
g_iPedComponentDressLegsCheck++
IF g_iPedComponentDressLegsCheck = 1
PED_COMP_NAME_ENUM eReturnLegsItem
IF IS_ITEM_A_DRESS(ePedModel, COMP_TYPE_JBIB, GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB))
// Check non dress version
IF GET_PED_COMP_ITEM_DRESS_VERSION(ePedModel, COMP_TYPE_LEGS, eItem, eReturnLegsItem)
RETURN IS_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS, eReturnLegsItem)
ENDIF
ELSE
// Check dress version
IF GET_PED_COMP_ITEM_NON_DRESS_VERSION(ePedModel, COMP_TYPE_LEGS, eItem, eReturnLegsItem)
RETURN IS_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS, eReturnLegsItem)
ENDIF
ENDIF
ENDIF
g_iPedComponentDressLegsCheck--
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Checks to see if the component item is current for the ped
/// NOTE: If this command is used in a loop we may run over the script instructions per frame limit
FUNC BOOL IS_PED_COMP_ITEM_CURRENT_SP(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
//CPRINTLN(DEBUG_PED_COMP, "IS_PED_COMP_ITEM_CURRENT_SP: eType = ", GET_PED_COMP_TYPE_STRING(eType), " eItem = ", eItem)
IF IS_PED_INJURED(ped)
RETURN FALSE
ENDIF
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
PED_COMP_NAME_ENUM eCurrentItem
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
// First check that the ped model can have the component item
IF NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
RETURN FALSE
ENDIF
// -----------OUTFITS -----------------------------------------
IF eType = COMP_TYPE_OUTFIT
INT i, j, k
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
FOR i = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sOutfitData.eItems[i] <> DUMMY_PED_COMP
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) <> COMP_TYPE_OUTFIT
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) <> COMP_TYPE_PROPS
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i])
// -----------PROPGROUP FOR OUTFIT----------------------------------------
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) = COMP_TYPE_PROPGROUP
// Grab all the prop data for this outfits propgroup
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfitData.eItems[i])
// For each item in the propgroup
FOR j = 0 TO NUMBER_OF_PED_PROP_TYPES-1
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_PROPS, sPropGroupData.eItems[j])
// Find the current item and check to see if it is safe to mix with this outfit
FOR k = 0 TO PED_COMPONENTS_PROPGROUPS-1
// If this prop has the same anchor as the current prop
g_sTempCompData[2] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, k))
IF g_sTempCompData[2].ePropPos = INT_TO_ENUM(PED_PROP_POSITION, j)
IF IS_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, k))
IF NOT CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, k), sOutfitData, g_sTempCompData[2])
// This component item is not safe to mix with this outfit
RETURN FALSE
ENDIF
ENDIF
ENDIF
ENDFOR
ENDIF
ENDFOR
ELSE
// -------NORMAL ITEM IN OUTFIT -------------------------------------
// Lookup the current item and check to see if it is safe to mix with this outfit
eCurrentItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i))
g_sTempCompData[2] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), eCurrentItem)
IF NOT CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), eCurrentItem, sOutfitData, g_sTempCompData[2])
// This component item is not safe to mix with this outfit
RETURN FALSE
ENDIF
ENDIF
ENDIF
ENDIF
ENDFOR
// None of the items in this outfit are invalid
RETURN TRUE
// -------PROPGROUPS -----------------------------------------------------
ELIF eType = COMP_TYPE_PROPGROUP
INT i
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, eItem)
FOR i = 0 TO NUMBER_OF_PED_PROP_TYPES-1
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_PROPS, sPropGroupData.eItems[i])
//CPRINTLN(DEBUG_PED_COMP, "This prop item is invalid for this group: sPropGroupData.eItems[i]= ", sPropGroupData.eItems[i])
RETURN FALSE
ENDIF
ENDFOR
//CPRINTLN(DEBUG_PED_COMP, "None of the prop items in this group are invalid")
RETURN TRUE
// ------------PROPS-----------------------------------------------------
ELIF eType = COMP_TYPE_PROPS
IF GET_PED_PROP_INDEX(ped, g_sTempCompData[1].ePropPos) = g_sTempCompData[1].iDrawable
AND (GET_PED_PROP_TEXTURE_INDEX(ped, g_sTempCompData[1].ePropPos) = g_sTempCompData[1].iTexture OR g_sTempCompData[1].iDrawable = -1)
// Prop item is current
RETURN TRUE
ELSE
//CPRINTLN(DEBUG_PED_COMP, "Prop item not current. g_sTempCompData[1].ePropPos =", g_sTempCompData[1].ePropPos, " g_sTempCompData[1].iDrawable=", g_sTempCompData[1].iDrawable, " g_sTempCompData[1].iTexture=", g_sTempCompData[1].iTexture)
ENDIF
ELSE
// ---------NORMAL ITEMS-------------------------------------------
IF g_sTempCompData[1].iDrawable = GET_PED_DRAWABLE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType))
AND g_sTempCompData[1].iTexture = GET_PED_TEXTURE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType))
// Component item is current
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Marks the component item as available for the ped model
FUNC BOOL SET_PED_COMP_ITEM_AVAILABLE_MP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bAvailable, BOOL bClearNewFlag = FALSE)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
//CPRINTLN(DEBUG_PED_COMP, "[SET_PED_COMP_ITEM_AVAILABLE_MP] Component item[", g_sTempCompData[1].iDrawable, " , ", g_sTempCompData[1].iTexture, "], type: ", GET_PED_COMP_TYPE_STRING(eType) , " available: ", bAvailable, ", ", GET_THIS_SCRIPT_NAME())
// Set the depth so we can tell if we should be acquiring copies
g_iPedComponentNest++
// First check that the ped model can have the component item
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
#IF USE_TU_CHANGES
AND NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
#ENDIF
IF bAvailable
//INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_CLOTHES_UNLOCK)
IF eType = COMP_TYPE_LEGS
OR eType = COMP_TYPE_JBIB
OR eType = COMP_TYPE_FEET
OR eType = COMP_TYPE_HEAD
OR eType = COMP_TYPE_PROPS
OR eType = COMP_TYPE_TEETH
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_NO_CLOTHES_UNLOCK, g_MP_STAT_NO_CLOTHES_UNLOCK[GET_SLOT_NUMBER(-1)]+1)
ENDIF
IF eType = COMP_TYPE_BERD
INCREMENT_BY_MP_INT_CHARACTER_STAT( MP_STAT_NO_MASKS_UNLOCK, 1)
ENDIF
ELSE
IF eType = COMP_TYPE_LEGS
OR eType = COMP_TYPE_JBIB
OR eType = COMP_TYPE_FEET
OR eType = COMP_TYPE_HEAD
OR eType = COMP_TYPE_PROPS
OR eType = COMP_TYPE_TEETH
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_NO_CLOTHES_UNLOCK, g_MP_STAT_NO_CLOTHES_UNLOCK[GET_SLOT_NUMBER(-1)]-1)
ENDIF
IF eType = COMP_TYPE_BERD
INCREMENT_BY_MP_INT_CHARACTER_STAT( MP_STAT_NO_MASKS_UNLOCK, -1)
ENDIF
ENDIF
// Set appropriate multiplayer data
#IF USE_TU_CHANGES
IF eType != COMP_TYPE_HAND // All hands are acquired.
#ENDIF
INT iStatValue = GET_MP_INT_CHARACTER_STAT(GET_MP_PED_COMPONENT_AVAILABLE_STAT(eType, g_sTempCompData[1].iBitset), g_iPedComponentSlot)
IF bAvailable
SET_BIT(iStatValue, g_sTempCompData[1].iItemBit)
ELSE
CLEAR_BIT(iStatValue, g_sTempCompData[1].iItemBit)
ENDIF
SET_MP_INT_CHARACTER_STAT(GET_MP_PED_COMPONENT_AVAILABLE_STAT(eType, g_sTempCompData[1].iBitset), iStatValue, g_iPedComponentSlot)
#IF USE_TU_CHANGES
ENDIF
#ENDIF
IF bClearNewFlag
MP_INT_STATS eStat
IF GET_MP_PED_COMPONENT_USED_STAT(eType, g_sTempCompData[1].iBitset, eStat)
INT iNewStatValue = GET_MP_INT_CHARACTER_STAT(eStat, g_iPedComponentSlot)
SET_BIT(iNewStatValue, g_sTempCompData[1].iItemBit)
SET_MP_INT_CHARACTER_STAT(eStat, iNewStatValue, g_iPedComponentSlot)
ENDIF
ENDIF
// Some items have multiple copies (like forwards / backwards caps)
// setting one of them available does the others too
// IF THIS IS EDITED- UPDATE SET_MP_PED_COMP_ITEM_NO_LONGER_NEW + SET_PED_COMP_ITEM_ACQUIRED_MP
IF g_iPedComponentNest = 1
AND bAvailable = TRUE
INT iCopyItem
PED_COMP_NAME_ENUM eCopyItem
// ------------male-------------------------------
IF ePedModel = MP_M_FREEMODE_01
IF eType = COMP_TYPE_PROPS
// buying a forwards cap gets you the backwards one too
IF (eItem >= PROPS_FMM_HAT_10_0 AND eItem <= PROPS_FMM_HAT_10_7)
//CPRINTLN(DEBUG_PED_COMP, "Available: a forwards cap- adding backwards version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(PROPS_FMM_HAT_9_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
// buying a backwards cap gets you the forwards one too
ELIF (eItem >= PROPS_FMM_HAT_9_0 AND eItem <= PROPS_FMM_HAT_9_7)
//CPRINTLN(DEBUG_PED_COMP, "Available: a backwards cap- adding forwards version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(PROPS_FMM_HAT_10_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
// buying an open collar special item gives you the closed collar version
IF (eItem >= SPECIAL_FMM_3_0 AND eItem <= SPECIAL_FMM_3_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: an open collar item giving closed collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_4_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_4_0 AND eItem <= SPECIAL_FMM_4_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: a closed collar item giving open collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_3_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
// buying an open collar special item gives you the closed collar version
ELIF (eItem >= SPECIAL_FMM_6_0 AND eItem <= SPECIAL_FMM_6_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: an open collar item giving closed collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_7_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_7_0 AND eItem <= SPECIAL_FMM_7_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: a closed collar item giving open collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_6_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
// buying an open collar special item gives you the closed collar version
ELIF (eItem >= SPECIAL_FMM_11_0 AND eItem <= SPECIAL_FMM_11_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: an open collar item giving closed collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_10_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_10_0 AND eItem <= SPECIAL_FMM_10_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: a closed collar item giving open collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_11_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
// buying a special item worn under leather jacket gives you jbib version
ELIF (eItem >= SPECIAL_FMM_2_0 AND eItem <= SPECIAL_FMM_2_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: item under leather jacket giving jbib item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(JBIB_FMM_0_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_JBIB, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
ELIF (eItem >= SPECIAL_FMM_14_0 AND eItem <= SPECIAL_FMM_14_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: item under leather jacket giving jbib item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(JBIB_FMM_1_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_JBIB, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
ENDIF
ELIF eType = COMP_TYPE_JBIB
// buying a jbib that can be worn under leather jacket gives you under leather jacket version
IF (eItem >= JBIB_FMM_0_0 AND eItem <= JBIB_FMM_0_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: jbib that can be worn under leather jacket giving special item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_2_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
ELIF (eItem >= JBIB_FMM_1_0 AND eItem <= JBIB_FMM_1_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: jbib that can be worn under leather jacket giving special item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_14_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
ENDIF
ENDIF
// ------------female-------------------------------
ELIF ePedModel = MP_F_FREEMODE_01
IF eType = COMP_TYPE_JBIB
// buying jbib that can be worn under sports jacket gets you extra special version
IF (eItem >= JBIB_FMF_0_0 AND eItem <= JBIB_FMF_0_15)
//CPRINTLN(DEBUG_PED_COMP, "Available: jbib that can be worn under sports jacket giving special item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMF_1_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, bClearNewFlag)
ENDIF
ENDIF
ENDIF
// copies that are needed for male + female characters
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
IF eType = COMP_TYPE_JBIB
// buying jbibs that can be worn under jackets also gets you the under jacket special item
eCopyItem = GET_SPECIAL_FROM_JBIB(ePedModel, eItem, g_sTempCompData[1].iTexture)
IF eCopyItem <> DUMMY_PED_COMP
//CPRINTLN(DEBUG_PED_COMP, "Available: jacket compatible jbib- adding special item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_SPECIAL, eCopyItem, TRUE, bClearNewFlag)
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
// buying items worn under jackets also gets you the normal jbib version
eCopyItem = GET_JBIB_FROM_SPECIAL(ePedModel, eItem, g_sTempCompData[1].iTexture)
IF eCopyItem <> DUMMY_PED_COMP
//CPRINTLN(DEBUG_PED_COMP, "Available: under jacket special item- adding jbib: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_JBIB, eCopyItem, TRUE, bClearNewFlag)
ENDIF
ENDIF
ENDIF
g_iPedComponentNest--
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_COMP_ITEM_AVAILABLE_MP] Component item[", ENUM_TO_INT(eItem), "] doesn't belong to ped[", g_sTempCompData[1].iPedID, "]", "eType = ", GET_PED_COMP_TYPE_STRING(eType))
ENDIF
g_iPedComponentNest--
RETURN FALSE
ENDFUNC
/// PURPOSE: Marks the component item as available for the ped model
FUNC BOOL SET_PED_COMP_ITEM_AVAILABLE_SP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bAvailable)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
// First check that the ped model can have the component item
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
AND NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
// Set appropriate singleplayer data
IF bAvailable
// set the appropriate bit
GET_BITSET_FROM_COMP_TYPE(eType, g_sTempCompData[1].iPedID, g_sTempCompData[1].iBitset, PED_COMPONENT_AVAILABLE_SLOT, g_sTempCompData[1].iItemBit, TRUE, FALSE)
ELSE
// clear the appropriate bit
GET_BITSET_FROM_COMP_TYPE(eType, g_sTempCompData[1].iPedID, g_sTempCompData[1].iBitset, PED_COMPONENT_AVAILABLE_SLOT, g_sTempCompData[1].iItemBit, FALSE, TRUE)
ENDIF
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_COMP_ITEM_AVAILABLE_SP] Component item[", ENUM_TO_INT(eItem), "] doesn't belong to ped[", g_sTempCompData[1].iPedID, "]", "eType = ", GET_PED_COMP_TYPE_STRING(eType))
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Sets the item as acquired or not acquired.
/// If the item is an outfit, all items in the outfit get set as acquired too.
/// (this is only done for acquiring outfits, so we don't remove things from wardrobe unnecessarily)
/// PARAMS:
/// ePedModel - the ped this item belongs to
/// eType - the ped component type of the item we are using
/// eItem - the item we are using
/// bAcquired - are we setting the item to be acquired?
/// RETURNS:
/// TRUE if the ped can have this item. FALSE otherwise
FUNC BOOL SET_PED_COMP_ITEM_ACQUIRED_MP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bAcquired, BOOL bAcquireCopies = TRUE)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
// First check that the ped model can have the component item
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
#IF USE_TU_CHANGES
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
IF eType = COMP_TYPE_OUTFIT
IF bAcquired
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_ACQUIRED_SLOT)
ELSE
CLEAR_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_ACQUIRED_SLOT)
ENDIF
ELIF eType = COMP_TYPE_PROPGROUP
// Skip
ELIF eType = COMP_TYPE_PROPS
IF bAcquired
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_ACQUIRED_SLOT)
ELSE
CLEAR_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_ACQUIRED_SLOT)
ENDIF
ELSE
IF bAcquired
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_ACQUIRED_SLOT)
ELSE
CLEAR_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_ACQUIRED_SLOT)
ENDIF
ENDIF
// Flag alt items as acquired also...
IF bAcquireCopies = TRUE
AND bAcquired = TRUE
INT iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(g_iLastDLCItemNameHash)
INT iAltComp
INT iRetNameHash, iRetCompEnum, iRetType
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(g_iLastDLCItemNameHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
SET_BIT_SHOP_PED_APPAREL_SCRIPT(iRetNameHash, PED_COMPONENT_ACQUIRED_SLOT)
// Alternative on-disk item
ELSE
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, GET_COMP_TYPE_FROM_PED_COMPONENT(INT_TO_ENUM(PED_COMPONENT, iRetType)), INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetCompEnum), TRUE, FALSE)
ENDIF
ENDREPEAT
ENDIF
// If this item is an outfit, set all of the outfit items as acquired + available
// (this is only done for acquiring outfits, so we don't remove things from wardrobe unnecessarily)
IF eType = COMP_TYPE_OUTFIT
INT iItem, iProp
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
FOR iItem = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sOutfitData.eItems[iItem] <> DUMMY_PED_COMP
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_OUTFIT
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_PROPS
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_PROPGROUP
// normal items
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem), sOutfitData.eItems[iItem], TRUE)
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem), sOutfitData.eItems[iItem], TRUE)
ELSE
// propgroups
// Grab all the prop data for this outfits propgroup
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfitData.eItems[iItem])
// For each item in the propgroup
FOR iProp = 0 TO NUMBER_OF_PED_PROP_TYPES-1
IF ENUM_TO_INT(sPropGroupData.eItems[iProp]) >= 10 // we start the props at 10.
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[iProp], TRUE)
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[iProp], TRUE)
ENDIF
ENDFOR
ENDIF
ENDIF
ENDFOR
ENDIF
ELSE
#ENDIF
// Set appropriate multiplayer data
#IF USE_TU_CHANGES
IF eType != COMP_TYPE_HAND // All hands are acquired.
#ENDIF
INT iStatValue = GET_MP_INT_CHARACTER_STAT(GET_MP_PED_COMPONENT_ACQUIRED_STAT(eType, g_sTempCompData[1].iBitset), g_iPedComponentSlot)
IF bAcquired
SET_BIT(iStatValue, g_sTempCompData[1].iItemBit)
ELSE
CLEAR_BIT(iStatValue, g_sTempCompData[1].iItemBit)
ENDIF
SET_MP_INT_CHARACTER_STAT(GET_MP_PED_COMPONENT_ACQUIRED_STAT(eType, g_sTempCompData[1].iBitset), iStatValue, g_iPedComponentSlot)
#IF USE_TU_CHANGES
ENDIF
#ENDIF
// If this item is an outfit, set all of the outfit items as acquired + available
// (this is only done for acquiring outfits, so we don't remove things from wardrobe unnecessarily)
IF eType = COMP_TYPE_OUTFIT
INT iItem, iProp
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
FOR iItem = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sOutfitData.eItems[iItem] <> DUMMY_PED_COMP
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_OUTFIT
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_PROPS
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_PROPGROUP
// normal items
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem), sOutfitData.eItems[iItem], TRUE)
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem), sOutfitData.eItems[iItem], TRUE)
ELSE
// propgroups
// Grab all the prop data for this outfits propgroup
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfitData.eItems[iItem])
// For each item in the propgroup
FOR iProp = 0 TO NUMBER_OF_PED_PROP_TYPES-1
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[iProp], TRUE)
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[iProp], TRUE)
ENDFOR
ENDIF
ENDIF
ENDFOR
ENDIF
// Some items have multiple copies (like forwards / backwards caps)
// acquiring one of them acquires the others too
// IF THIS IS EDITED- UPDATE SET_MP_PED_COMP_ITEM_NO_LONGER_NEW + SET_PED_COMP_ITEM_AVAILABLE_MP
IF bAcquireCopies = TRUE
AND bAcquired = TRUE
INT iCopyItem
PED_COMP_NAME_ENUM eCopyItem
// ------------male-------------------------------
IF ePedModel = MP_M_FREEMODE_01
IF eType = COMP_TYPE_PROPS
// buying a forwards cap gets you the backwards one too
IF (eItem >= PROPS_FMM_HAT_10_0 AND eItem <= PROPS_FMM_HAT_10_7)
CPRINTLN(DEBUG_PED_COMP, "Acquired a forwards cap- adding backwards version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(PROPS_FMM_HAT_9_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
// buying a backwards cap gets you the forwards one too
ELIF (eItem >= PROPS_FMM_HAT_9_0 AND eItem <= PROPS_FMM_HAT_9_7)
CPRINTLN(DEBUG_PED_COMP, "Acquired a backwards cap- adding forwards version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(PROPS_FMM_HAT_10_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
// buying an open collar special item gives you the closed collar version
IF (eItem >= SPECIAL_FMM_3_0 AND eItem <= SPECIAL_FMM_3_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired an open collar item giving closed collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_4_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_4_0 AND eItem <= SPECIAL_FMM_4_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired a closed collar item giving open collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_3_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
// buying an open collar special item gives you the closed collar version
ELIF (eItem >= SPECIAL_FMM_6_0 AND eItem <= SPECIAL_FMM_6_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired an open collar item giving closed collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_7_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_7_0 AND eItem <= SPECIAL_FMM_7_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired a closed collar item giving open collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_6_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
// buying an open collar special item gives you the closed collar version
ELIF (eItem >= SPECIAL_FMM_11_0 AND eItem <= SPECIAL_FMM_11_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired an open collar item giving closed collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_10_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_10_0 AND eItem <= SPECIAL_FMM_10_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired a closed collar item giving open collar version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_11_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
// buying a special item worn under leather jacket gives you jbib version
ELIF (eItem >= SPECIAL_FMM_2_0 AND eItem <= SPECIAL_FMM_2_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired item under leather jacket giving jbib item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(JBIB_FMM_0_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_JBIB, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ELIF (eItem >= SPECIAL_FMM_14_0 AND eItem <= SPECIAL_FMM_14_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired item under leather jacket giving jbib item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(JBIB_FMM_1_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_JBIB, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ENDIF
ELIF eType = COMP_TYPE_JBIB
// buying a jbib that can be worn under leather jacket gives you under leather jacket version
IF (eItem >= JBIB_FMM_0_0 AND eItem <= JBIB_FMM_0_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired jbib that can be worn under leather jacket giving special item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_2_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ELIF (eItem >= JBIB_FMM_1_0 AND eItem <= JBIB_FMM_1_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired jbib that can be worn under leather jacket giving special item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_14_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
#IF USE_TU_CHANGES
// Buying the checked shirts gives you the DLC special version
ELIF (eItem >= JBIB_FMM_14_0 AND eItem <= JBIB_FMM_14_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired checked shirt jbib so setting DLC special as acquired")
SWITCH eItem
CASE JBIB_FMM_14_0
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_0"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_0"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_1
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_1"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_1"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_2
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_2"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_2"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_3
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_3"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_3"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_4
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_4"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_4"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_5
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_5"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_5"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_6
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_6"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_6"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_7
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_7"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_7"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_8
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_8"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_8"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_9
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_9"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_9"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_10
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_10"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_10"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_11
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_11"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_11"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_12
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_12"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_12"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_13
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_13"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_13"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_14
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_14"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_14"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_14_15
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_15"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_15"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
ENDSWITCH
// Buying the untucked shirt gives you the DLC special version
ELIF (eItem >= JBIB_FMM_12_0 AND eItem <= JBIB_FMM_12_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired untucked shirt jbib so setting DLC special as acquired")
SWITCH eItem
CASE JBIB_FMM_12_0
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_0"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_0"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_1
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_1"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_1"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_2
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_2"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_2"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_3
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_3"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_3"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_4
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_4"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_4"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_5
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_5"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_5"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_6
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_6"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_6"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_7
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_7"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_7"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_8
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_8"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_8"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_9
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_9"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_9"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_10
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_10"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_10"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_11
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_11"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_11"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_12
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_12"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_12"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_13
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_13"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_13"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_14
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_14"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_14"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
CASE JBIB_FMM_12_15
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_8_15"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_M_SPECIAL_9_15"), COMP_TYPE_SPECIAL, 3), TRUE, FALSE)
BREAK
ENDSWITCH
#ENDIF
ENDIF
#IF USE_TU_CHANGES
ELIF eType = COMP_TYPE_TEETH
// buying a tie also gives you the vest version
IF (eItem >= TEETH_FMM_10_0 AND eItem <= TEETH_FMM_10_15)
CPRINTLN(DEBUG_PED_COMP, "Viewed a normal tie item so we are giving giving the waistcoat version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
SWITCH g_sTempCompData[2].iTexture
CASE 0
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_0"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_0"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 1
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_1"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_1"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 2
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_2"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_2"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 3
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_3"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_3"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 4
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_4"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_4"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 5
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_5"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_5"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 6
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_6"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_6"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 7
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_7"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_7"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 8
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_8"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_8"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 9
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_9"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_9"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 10
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_10"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_10"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 11
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_11"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_11"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 12
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_12"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_12"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 13
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_13"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_13"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 14
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_14"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_14"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 15
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_15"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_15"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
ENDSWITCH
ELIF (eItem >= TEETH_FMM_12_0 AND eItem <= TEETH_FMM_12_15)
CPRINTLN(DEBUG_PED_COMP, "Viewed a skinny tie item so we are giving giving the waistcoat version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
SWITCH g_sTempCompData[2].iTexture
CASE 0
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_0"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_0"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 1
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_1"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_1"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 2
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_2"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_2"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 3
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_3"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_3"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 4
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_4"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_4"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 5
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_5"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_5"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 6
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_6"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_6"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 7
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_7"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_7"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 8
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_8"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_8"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 9
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_9"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_9"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 10
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_10"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_10"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 11
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_11"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_11"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 12
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_12"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_12"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 13
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_13"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_13"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 14
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_14"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_14"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
CASE 15
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_15"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_15"), COMP_TYPE_TEETH, 3), TRUE, FALSE)
BREAK
ENDSWITCH
ENDIF
#ENDIF
ENDIF
// ------------female-------------------------------
ELIF ePedModel = MP_F_FREEMODE_01
IF eType = COMP_TYPE_JBIB
// buying jbib that can be worn under sports jacket gets you extra special version
IF (eItem >= JBIB_FMF_0_0 AND eItem <= JBIB_FMF_0_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired jbib that can be worn under sports jacket giving special item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMF_1_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ENDIF
ENDIF
ENDIF
// copies that are needed for male + female characters
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
IF eType = COMP_TYPE_JBIB
// buying jbibs that can be worn under jackets also gets you the under jacket special item
eCopyItem = GET_SPECIAL_FROM_JBIB(ePedModel, eItem, g_sTempCompData[1].iTexture)
IF eCopyItem <> DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "Acquired jacket compatible jbib- adding special item: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_SPECIAL, eCopyItem, TRUE, FALSE)
ENDIF
#IF USE_TU_CHANGES
// Buying the camisole shirts gives you the DLC special version
IF (eItem >= JBIB_FMF_12_0 AND eItem <= JBIB_FMM_12_15)
SWITCH eItem
CASE JBIB_FMF_12_7
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_F_ACCS2_0"), COMP_TYPE_TEETH, 4), TRUE, FALSE)
BREAK
CASE JBIB_FMF_12_8
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_F_ACCS2_1"), COMP_TYPE_TEETH, 4), TRUE, FALSE)
BREAK
CASE JBIB_FMF_12_9
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_F_ACCS2_2"), COMP_TYPE_TEETH, 4), TRUE, FALSE)
BREAK
ENDSWITCH
ENDIF
#ENDIF
ELIF eType = COMP_TYPE_SPECIAL
// buying items worn under jackets also gets you the normal jbib version
eCopyItem = GET_JBIB_FROM_SPECIAL(ePedModel, eItem, g_sTempCompData[1].iTexture)
IF eCopyItem <> DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "Acquired under jacket special item- adding jbib: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, COMP_TYPE_JBIB, eCopyItem, TRUE, FALSE)
ENDIF
ENDIF
ENDIF
IF bAcquired
IF (ePedModel = MP_M_FREEMODE_01)
IF (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_0"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_1"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_2"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_3"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_4"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_5"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_6"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_7"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_8"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_9"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_10"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_11"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_12"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_13"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_14"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_15"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_16"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_17"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_18"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_19"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_20"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_M_OUTFIT_SCUBA_21"))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_SCUBA_GEAR, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_SCUBA_OUTFIT_PURCH)
CPRINTLN(DEBUG_PED_COMP, "Already acquired a male scuba outfit")
ELSE
CPRINTLN(DEBUG_PED_COMP, "Acquired a male scuba outfit, setting packstat")
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_SCUBA_OUTFIT_PURCH, TRUE)
ENDIF
ENDIF
ELIF (ePedModel = MP_F_FREEMODE_01)
IF (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_0"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_1"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_2"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_3"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_4"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_5"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_6"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_7"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_8"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_9"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_10"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_11"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_12"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_13"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_14"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_15"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_16"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_17"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_18"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_19"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_20"))
OR (g_iLastDLCItemNameHash = HASH("DLC_MP_X17_F_OUTFIT_SCUBA_21"))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_SCUBA_GEAR, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_SCUBA_OUTFIT_PURCH)
CPRINTLN(DEBUG_PED_COMP, "Already acquired a female scuba outfit")
ELSE
CPRINTLN(DEBUG_PED_COMP, "Acquired a female scuba outfit, setting packstat")
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_SCUBA_OUTFIT_PURCH, TRUE)
ENDIF
ENDIF
ENDIF
ENDIF
#IF USE_TU_CHANGES
ENDIF // IF NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
#ENDIF
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_COMP_ITEM_ACQUIRED_MP] Component item[", g_sTempCompData[1].iDrawable, " , ", g_sTempCompData[1].iTexture, "], type: ", GET_PED_COMP_TYPE_STRING(eType) , " acquired: ", bAcquired, ", ", GET_THIS_SCRIPT_NAME())
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_COMP_ITEM_ACQUIRED_MP] Component item[", g_sTempCompData[1].iDrawable, " , ", g_sTempCompData[1].iTexture, "], type: ", GET_PED_COMP_TYPE_STRING(eType) , " doesn't belong to ped[", g_sTempCompData[1].iPedID, "]", GET_THIS_SCRIPT_NAME())
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Sets the item as acquired or not acquired.
/// If the item is an outfit, all items in the outfit get set as acquired too.
/// (this is only done for acquiring outfits, so we don't remove things from wardrobe unnecessarily)
/// PARAMS:
/// ePedModel - the ped this item belongs to
/// eType - the ped component type of the item we are using
/// eItem - the item we are using
/// bAcquired - are we setting the item to be acquired?
/// bAcquireCopies - If this is true then any copies of this item are also acquired
/// (used for Franklin's ties / jbibs etc)
/// RETURNS:
/// TRUE if the ped can have this item. FALSE otherwise
FUNC BOOL SET_PED_COMP_ITEM_ACQUIRED_SP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bAcquired, BOOL bAcquireCopies = TRUE)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
// First check that the ped model can have the component item
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
AND NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
// Set appropriate singleplayer data
IF bAcquired
// set the appropriate bit
GET_BITSET_FROM_COMP_TYPE(eType, g_sTempCompData[1].iPedID, g_sTempCompData[1].iBitset, PED_COMPONENT_ACQUIRED_SLOT, g_sTempCompData[1].iItemBit, TRUE, FALSE)
// If this item is an outfit, set all of the outfit items as acquired + available
// (this is only done for acquiring outfits, so we don't remove things from wardrobe unnecessarily)
IF eType = COMP_TYPE_OUTFIT
// don't acquire the parts of the jewel heist suit
// as it is just the SE suit with a tie and gloves
BOOL bAcquireComponents = TRUE
IF ePedModel = PLAYER_ZERO
IF eItem = OUTFIT_P0_JEWEL_HEIST
bAcquireComponents = FALSE
CPRINTLN(DEBUG_PED_COMP, "Not acquiring the component parts of the jewel heist suit.")
ENDIF
ENDIF
IF bAcquireComponents = TRUE
INT iItem, iProp
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
FOR iItem = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sOutfitData.eItems[iItem] <> DUMMY_PED_COMP
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_OUTFIT
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_PROPS
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem) <> COMP_TYPE_PROPGROUP
// normal items
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem), sOutfitData.eItems[iItem], TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, iItem), sOutfitData.eItems[iItem], TRUE)
ELSE
// propgroups
// Grab all the prop data for this outfits propgroup
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfitData.eItems[iItem])
// For each item in the propgroup
FOR iProp = 0 TO NUMBER_OF_PED_PROP_TYPES-1
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[iProp], TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[iProp], TRUE)
ENDFOR
ENDIF
ENDIF
ENDFOR
ENDIF
ENDIF
ELSE
// clear the appropriate bit
GET_BITSET_FROM_COMP_TYPE(eType, g_sTempCompData[1].iPedID, g_sTempCompData[1].iBitset, PED_COMPONENT_ACQUIRED_SLOT, g_sTempCompData[1].iItemBit, FALSE, TRUE)
ENDIF
// Some items have multiple copies (like franklin's ties and jbibs)
// acquiring one of them acquires the others too
IF bAcquireCopies = TRUE
AND bAcquired = TRUE
INT iCopyItem
SWITCH ePedModel
CASE PLAYER_ZERO
BREAK
CASE PLAYER_ONE
SWITCH eType
CASE COMP_TYPE_TORSO
// buying one of Franklin's suit jackets gets you the open + closed versions
IF (eItem >= TORSO_P1_SUIT AND eItem <= TORSO_P1_SUIT_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired one of Franklin's open suit jackets- adding closed version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(TORSO_P1_3PCSUIT) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_TORSO, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ELIF (eItem >= TORSO_P1_3PCSUIT AND eItem <= TORSO_P1_3PCSUIT_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired one of Franklin's closed suit jackets- adding open version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(TORSO_P1_SUIT) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_TORSO, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ENDIF
BREAK
CASE COMP_TYPE_JBIB
// buyng one of Franklin's waistcoat jbibs gets you the open + closed collar versions
IF (eItem >= JBIB_P1_WAISTCOAT_A AND eItem <= JBIB_P1_WAISTCOAT_A_15)
iCopyItem = ENUM_TO_INT(JBIB_P1_WAISTCOAT_B) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_JBIB, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ELIF (eItem >= JBIB_P1_WAISTCOAT_B AND eItem <= JBIB_P1_WAISTCOAT_B_15)
iCopyItem = ENUM_TO_INT(JBIB_P1_WAISTCOAT_A) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_JBIB, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ENDIF
BREAK
CASE COMP_TYPE_SPECIAL
// buying one of Franklin's ties gets you the short, medium + long versions
IF (eItem >= SPECIAL_P1_TIE_SHORT AND eItem <= SPECIAL_P1_TIE_SHORT_15)
iCopyItem = ENUM_TO_INT(SPECIAL_P1_TIE_MEDIUM) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
iCopyItem = ENUM_TO_INT(SPECIAL_P1_TIE_LONG) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ELIF (eItem >= SPECIAL_P1_TIE_MEDIUM AND eItem <= SPECIAL_P1_TIE_MEDIUM_15)
iCopyItem = ENUM_TO_INT(SPECIAL_P1_TIE_SHORT) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
iCopyItem = ENUM_TO_INT(SPECIAL_P1_TIE_LONG) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ELIF (eItem >= SPECIAL_P1_TIE_LONG AND eItem <= SPECIAL_P1_TIE_LONG_15)
iCopyItem = ENUM_TO_INT(SPECIAL_P1_TIE_SHORT) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
iCopyItem = ENUM_TO_INT(SPECIAL_P1_TIE_MEDIUM) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ENDIF
BREAK
CASE COMP_TYPE_PROPS
// buying one of Franklin's forwards caps gets you the backwards version
IF (eItem >= PROPS_P1_CAP_FRONT_0 AND eItem <= PROPS_P1_CAP_FRONT_15)
CPRINTLN(DEBUG_PED_COMP, "Acquired one of Franklin's forwards caps- adding backwards version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(PROPS_P1_GREEN_CAP) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ENDIF
BREAK
ENDSWITCH
BREAK
CASE PLAYER_TWO
SWITCH eType
CASE COMP_TYPE_LEGS
// buying Trevor's underwear also gives you the barefoot vesion
IF (eItem >= LEGS_P2_UNDERWEAR AND eItem <= LEGS_P2_UNDERWEAR_9)
CPRINTLN(DEBUG_PED_COMP, "Acquired one of Trevor's underwear- adding barefoot version: g_sTempCompData[1].iTexture ", g_sTempCompData[1].iTexture)
iCopyItem = ENUM_TO_INT(LEGS_P2_UNDERWEAR_BF_0) + g_sTempCompData[1].iTexture
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_LEGS, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), TRUE, FALSE)
ENDIF
BREAK
CASE COMP_TYPE_OUTFIT
// acquring Trevor's docks outfit will also give the beanie
IF (eItem = OUTFIT_P2_DOCK_WORKER)
CPRINTLN(DEBUG_PED_COMP, "Acquired one of Trevor's docks outfit - adding beanie hat")
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, PROPS_P2_BEANIE_HAT), TRUE, FALSE)
ENDIF
BREAK
ENDSWITCH
BREAK
ENDSWITCH
ENDIF
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_COMP_ITEM_ACQUIRED_SP] Component item[", ENUM_TO_INT(eItem), "] doesn't belong to ped[", g_sTempCompData[1].iPedID, "]")
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Returns the dummy or default item for this character in this slot
/// PARAMS:
/// eModel - model of the character we're checking (just uses player characters at the moment)
/// eType - the ped component type we are checking
/// RETURNS:
/// PED_COMP_NAME_ENUM of the dummy / default item or DUMMY_PED_COMP if there isn't one
#if USE_CLF_DLC
FUNC PED_COMP_NAME_ENUM GET_DUMMY_COMPONENT_FOR_SLOTCLF(MODEL_NAMES eModel, PED_COMP_TYPE_ENUM eType, INT iPropPos)
IF eType = COMP_TYPE_PROPS
PED_PROP_POSITION ePropPos = INT_TO_ENUM(PED_PROP_POSITION, iPropPos)
RETURN GET_DUMMY_PROP_FOR_ANCHOR(ePropPos)
ENDIF
SWITCH eModel
// Michael
CASE PLAYER_ZERO
SWITCH eType
CASE COMP_TYPE_HEAD RETURN HEAD_P0_0_0 BREAK
CASE COMP_TYPE_TORSO RETURN TORSO_P0_HEAVY_JACKET BREAK
CASE COMP_TYPE_LEGS RETURN LEGS_P0_CASUAL_JEANS BREAK
CASE COMP_TYPE_FEET RETURN FEET_P0_BOOTS BREAK
CASE COMP_TYPE_HAND RETURN HAND_P0_NONE BREAK
CASE COMP_TYPE_SPECIAL RETURN SPECIAL_P0_NONE BREAK
CASE COMP_TYPE_SPECIAL2 RETURN SPECIAL2_P0_NONE BREAK
CASE COMP_TYPE_DECL RETURN DECL_P0_NONE BREAK
CASE COMP_TYPE_BERD RETURN BERD_P0_NONE BREAK
CASE COMP_TYPE_TEETH RETURN TEETH_P0_NONE BREAK
CASE COMP_TYPE_JBIB RETURN JBIB_P0_NONE BREAK
CASE COMP_TYPE_PROPGROUP RETURN PROPGROUP_NONE BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[0].eStoredHairstyle
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
ENDSWITCH
BREAK
// FRANKLIN
CASE PLAYER_ONE
SWITCH eType
CASE COMP_TYPE_HEAD RETURN HEAD_P1_0_0 BREAK
CASE COMP_TYPE_TORSO RETURN TORSO_P1_BLUE_SHIRT BREAK
CASE COMP_TYPE_LEGS RETURN LEGS_P1_BLACK_JEANS BREAK
CASE COMP_TYPE_FEET RETURN FEET_P1_DUMMY BREAK
CASE COMP_TYPE_HAND RETURN HAND_P1_NONE BREAK
CASE COMP_TYPE_SPECIAL RETURN SPECIAL_P1_DUMMY BREAK
CASE COMP_TYPE_SPECIAL2 RETURN SPECIAL2_P1_NONE BREAK
CASE COMP_TYPE_DECL RETURN DECL_P1_NONE BREAK
CASE COMP_TYPE_BERD RETURN BERD_P1_NONE BREAK
CASE COMP_TYPE_TEETH RETURN TEETH_P1_NONE BREAK
CASE COMP_TYPE_JBIB RETURN JBIB_P1_NONE BREAK
CASE COMP_TYPE_PROPGROUP RETURN PROPGROUP_NONE BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[1].eStoredHairstyle
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
ENDSWITCH
BREAK
// TREVOR
CASE PLAYER_TWO
SWITCH eType
CASE COMP_TYPE_HEAD RETURN HEAD_P2_NONE BREAK
CASE COMP_TYPE_TORSO RETURN TORSO_P2_TUXEDO BREAK
CASE COMP_TYPE_LEGS RETURN LEGS_P2_SUIT_PANTS_8 BREAK
CASE COMP_TYPE_FEET RETURN FEET_P2_DUMMY BREAK
CASE COMP_TYPE_HAND RETURN HAND_P2_NONE BREAK
CASE COMP_TYPE_SPECIAL RETURN SPECIAL_P2_DUMMY BREAK
CASE COMP_TYPE_SPECIAL2 RETURN SPECIAL2_P2_NONE BREAK
CASE COMP_TYPE_DECL RETURN DECL_P2_NONE BREAK
CASE COMP_TYPE_BERD RETURN BERD_P2_NONE BREAK
CASE COMP_TYPE_TEETH RETURN TEETH_P2_NONE BREAK
CASE COMP_TYPE_JBIB RETURN JBIB_P2_NONE BREAK
CASE COMP_TYPE_PROPGROUP RETURN PROPGROUP_NONE BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[2].eStoredHairstyle
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
ENDSWITCH
BREAK
// Free mode male
CASE MP_M_FREEMODE_01
SWITCH eType
CASE COMP_TYPE_HEAD
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_HAIR
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_TORSO
RETURN TORSO_FMM_0_0
BREAK
CASE COMP_TYPE_LEGS
RETURN LEGS_FMM_5_0
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_FMM_0_10
BREAK
CASE COMP_TYPE_HAND
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_FMM_0_0
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_FMM_0_0
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_FMM_0_0
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_FMM_0_0
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_FMM_0_0
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_FMM_0_2 // if this changes- update GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION
BREAK
ENDSWITCH
BREAK
// Free mode female
CASE MP_F_FREEMODE_01
SWITCH eType
CASE COMP_TYPE_HEAD
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_HAIR
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_TORSO
RETURN TORSO_FMF_0_0
BREAK
CASE COMP_TYPE_LEGS
RETURN LEGS_FMF_14_9
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_FMF_1_0
BREAK
CASE COMP_TYPE_HAND
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_FMF_0_0
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_FMF_0_0
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_FMF_0_0
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_FMF_0_0
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_FMF_0_0
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_FMF_4_14 // if this changes- update GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION
BREAK
ENDSWITCH
BREAK
DEFAULT
BREAK // not a player character
ENDSWITCH
RETURN DUMMY_PED_COMP // there isn't a suitable dummy component set up for this slot
ENDFUNC
#endif
#if USE_NRM_DLC
FUNC PED_COMP_NAME_ENUM GET_DUMMY_COMPONENT_FOR_SLOTNRM(MODEL_NAMES eModel, PED_COMP_TYPE_ENUM eType, INT iPropPos)
IF eType = COMP_TYPE_PROPS
PED_PROP_POSITION ePropPos = INT_TO_ENUM(PED_PROP_POSITION, iPropPos)
RETURN GET_DUMMY_PROP_FOR_ANCHOR(ePropPos)
ENDIF
SWITCH eModel
// Michael
CASE PLAYER_ZERO
SWITCH eType
CASE COMP_TYPE_HEAD RETURN HEAD_P0_0_0 BREAK
CASE COMP_TYPE_TORSO RETURN TORSO_P0_HEAVY_JACKET BREAK
CASE COMP_TYPE_LEGS RETURN LEGS_P0_CASUAL_JEANS BREAK
CASE COMP_TYPE_FEET RETURN FEET_P0_BOOTS BREAK
CASE COMP_TYPE_HAND RETURN HAND_P0_NONE BREAK
CASE COMP_TYPE_SPECIAL RETURN SPECIAL_P0_NONE BREAK
CASE COMP_TYPE_SPECIAL2 RETURN SPECIAL2_P0_NONE BREAK
CASE COMP_TYPE_DECL RETURN DECL_P0_NONE BREAK
CASE COMP_TYPE_BERD RETURN BERD_P0_NONE BREAK
CASE COMP_TYPE_TEETH RETURN TEETH_P0_NONE BREAK
CASE COMP_TYPE_JBIB RETURN JBIB_P0_NONE BREAK
CASE COMP_TYPE_PROPGROUP RETURN PROPGROUP_NONE BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[0].eStoredHairstyle
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
ENDSWITCH
BREAK
// NEEDS TO BE REPLACED FOR JIMMY
CASE PLAYER_ONE
SWITCH eType
CASE COMP_TYPE_HEAD RETURN HEAD_P1_0_0 BREAK
CASE COMP_TYPE_TORSO RETURN TORSO_P1_BLUE_SHIRT BREAK
CASE COMP_TYPE_LEGS RETURN LEGS_P1_BLACK_JEANS BREAK
CASE COMP_TYPE_FEET RETURN FEET_P1_DUMMY BREAK
CASE COMP_TYPE_HAND RETURN HAND_P1_NONE BREAK
CASE COMP_TYPE_SPECIAL RETURN SPECIAL_P1_DUMMY BREAK
CASE COMP_TYPE_SPECIAL2 RETURN SPECIAL2_P1_NONE BREAK
CASE COMP_TYPE_DECL RETURN DECL_P1_NONE BREAK
CASE COMP_TYPE_BERD RETURN BERD_P1_NONE BREAK
CASE COMP_TYPE_TEETH RETURN TEETH_P1_NONE BREAK
CASE COMP_TYPE_JBIB RETURN JBIB_P1_NONE BREAK
CASE COMP_TYPE_PROPGROUP RETURN PROPGROUP_NONE BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[1].eStoredHairstyle
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
ENDSWITCH
BREAK
// NEEDS TO BE REPLACED FOR TRACEY
CASE PLAYER_TWO
SWITCH eType
CASE COMP_TYPE_HEAD RETURN HEAD_P2_NONE BREAK
CASE COMP_TYPE_TORSO RETURN TORSO_P2_WHITE_TSHIRT BREAK
CASE COMP_TYPE_LEGS RETURN LEGS_P2_SWEAT_PANTS BREAK
CASE COMP_TYPE_FEET RETURN FEET_P2_DUMMY BREAK
CASE COMP_TYPE_HAND RETURN HAND_P2_NONE BREAK
CASE COMP_TYPE_SPECIAL RETURN SPECIAL_P2_DUMMY BREAK
CASE COMP_TYPE_SPECIAL2 RETURN SPECIAL2_P2_NONE BREAK
CASE COMP_TYPE_DECL RETURN DECL_P2_NONE BREAK
CASE COMP_TYPE_BERD RETURN BERD_P2_NONE BREAK
CASE COMP_TYPE_TEETH RETURN TEETH_P2_NONE BREAK
CASE COMP_TYPE_JBIB RETURN JBIB_P2_NONE BREAK
CASE COMP_TYPE_PROPGROUP RETURN PROPGROUP_NONE BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[2].eStoredHairstyle
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
ENDSWITCH
BREAK
// Free mode male
CASE MP_M_FREEMODE_01
SWITCH eType
CASE COMP_TYPE_HEAD
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_HAIR
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_TORSO
RETURN TORSO_FMM_0_0
BREAK
CASE COMP_TYPE_LEGS
RETURN LEGS_FMM_5_0
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_FMM_0_10
BREAK
CASE COMP_TYPE_HAND
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_FMM_0_0
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_FMM_0_0
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_FMM_0_0
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_FMM_0_0
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_FMM_0_0
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_FMM_0_2 // if this changes- update GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION
BREAK
ENDSWITCH
BREAK
// Free mode female
CASE MP_F_FREEMODE_01
SWITCH eType
CASE COMP_TYPE_HEAD
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_HAIR
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_TORSO
RETURN TORSO_FMF_0_0
BREAK
CASE COMP_TYPE_LEGS
RETURN LEGS_FMF_14_9
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_FMF_1_0
BREAK
CASE COMP_TYPE_HAND
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_FMF_0_0
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_FMF_0_0
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_FMF_0_0
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_FMF_0_0
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_FMF_0_0
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_FMF_4_14 // if this changes- update GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION
BREAK
ENDSWITCH
BREAK
DEFAULT
BREAK // not a player character
ENDSWITCH
RETURN DUMMY_PED_COMP // there isn't a suitable dummy component set up for this slot
ENDFUNC
#endif
FUNC PED_COMP_NAME_ENUM GET_DUMMY_COMPONENT_FOR_SLOT(MODEL_NAMES eModel, PED_COMP_TYPE_ENUM eType, INT iPropPos)
#if USE_CLF_DLC
return GET_DUMMY_COMPONENT_FOR_SLOTCLF(eModel,eType,iPropPos)
#endif
#if USE_NRM_DLC
return GET_DUMMY_COMPONENT_FOR_SLOTNRM(eModel,eType,iPropPos)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
IF eType = COMP_TYPE_PROPS
PED_PROP_POSITION ePropPos = INT_TO_ENUM(PED_PROP_POSITION, iPropPos)
RETURN GET_DUMMY_PROP_FOR_ANCHOR(ePropPos)
ENDIF
SWITCH eModel
// Michael
CASE PLAYER_ZERO
SWITCH eType
CASE COMP_TYPE_HEAD
RETURN HEAD_P0_0_0
BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobals.sPlayerData.sInfo.sVariations[0].eStoredHairstyle
BREAK
CASE COMP_TYPE_TORSO
// pick default suit jacket based on wrecked suit flowflag
IF g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_MIC_HAS_HAGGARD_SUIT]
RETURN TORSO_P0_GREY_SUIT_01
ELSE
RETURN TORSO_P0_GREY_SUIT
ENDIF
BREAK
CASE COMP_TYPE_LEGS
// pick default suit pants based on wrecked suit flowflag
IF g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_MIC_HAS_HAGGARD_SUIT]
RETURN LEGS_P0_GREY_SUIT_1
ELSE
RETURN LEGS_P0_GREY_SUIT
ENDIF
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_P0_1
BREAK
CASE COMP_TYPE_HAND
RETURN HAND_P0_NONE
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_P0_NONE
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_P0_NONE
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_P0_NONE
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_P0_NONE
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_P0_NONE
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_P0_NONE
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
CASE COMP_TYPE_PROPGROUP
RETURN PROPGROUP_NONE
BREAK
ENDSWITCH
BREAK
// Franklin
CASE PLAYER_ONE
SWITCH eType
CASE COMP_TYPE_HEAD
RETURN HEAD_P1_0_0
BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobals.sPlayerData.sInfo.sVariations[1].eStoredHairstyle
BREAK
CASE COMP_TYPE_TORSO
RETURN TORSO_P1_BLUE_SHIRT
BREAK
CASE COMP_TYPE_LEGS
RETURN LEGS_P1_BLACK_JEANS
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_P1_DUMMY
BREAK
CASE COMP_TYPE_HAND
RETURN HAND_P1_NONE
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_P1_DUMMY
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_P1_NONE
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_P1_NONE
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_P1_NONE
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_P1_NONE
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_P1_NONE
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
CASE COMP_TYPE_PROPGROUP
RETURN PROPGROUP_NONE
BREAK
ENDSWITCH
BREAK
// Trevor
CASE PLAYER_TWO
SWITCH eType
CASE COMP_TYPE_HEAD
RETURN HEAD_P2_NONE
BREAK
CASE COMP_TYPE_HAIR
RETURN g_savedGlobals.sPlayerData.sInfo.sVariations[2].eStoredHairstyle
BREAK
CASE COMP_TYPE_TORSO
RETURN TORSO_P2_WHITE_TSHIRT
BREAK
CASE COMP_TYPE_LEGS
RETURN LEGS_P2_SWEAT_PANTS
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_P2_DUMMY
BREAK
CASE COMP_TYPE_HAND
RETURN HAND_P2_NONE
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_P2_DUMMY
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_P2_NONE
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_P2_NONE
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_P2_NONE
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_P2_NONE
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_P2_NONE
BREAK
CASE COMP_TYPE_OUTFIT
BREAK// skipped over by CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM
CASE COMP_TYPE_PROPGROUP
RETURN PROPGROUP_NONE
BREAK
ENDSWITCH
BREAK
// Free mode male
CASE MP_M_FREEMODE_01
SWITCH eType
CASE COMP_TYPE_HEAD
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_HAIR
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_TORSO
RETURN TORSO_FMM_0_0
BREAK
CASE COMP_TYPE_LEGS
RETURN LEGS_FMM_5_0
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_FMM_0_10
BREAK
CASE COMP_TYPE_HAND
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_FMM_0_0
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_FMM_0_0
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_FMM_0_0
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_FMM_0_0
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_FMM_0_0
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_FMM_0_2 // if this changes- update GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION
BREAK
ENDSWITCH
BREAK
// Free mode female
CASE MP_F_FREEMODE_01
SWITCH eType
CASE COMP_TYPE_HEAD
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_HAIR
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_TORSO
RETURN TORSO_FMF_0_0
BREAK
CASE COMP_TYPE_LEGS
RETURN LEGS_FMF_14_9
BREAK
CASE COMP_TYPE_FEET
RETURN FEET_FMF_1_0
BREAK
CASE COMP_TYPE_HAND
//No default -will return DUMMY_PED_COMP
BREAK
CASE COMP_TYPE_SPECIAL
RETURN SPECIAL_FMF_0_0
BREAK
CASE COMP_TYPE_SPECIAL2
RETURN SPECIAL2_FMF_0_0
BREAK
CASE COMP_TYPE_DECL
RETURN DECL_FMF_0_0
BREAK
CASE COMP_TYPE_BERD
RETURN BERD_FMF_0_0
BREAK
CASE COMP_TYPE_TEETH
RETURN TEETH_FMF_0_0
BREAK
CASE COMP_TYPE_JBIB
RETURN JBIB_FMF_4_14 // if this changes- update GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION
BREAK
ENDSWITCH
BREAK
DEFAULT
BREAK // not a player character
ENDSWITCH
RETURN DUMMY_PED_COMP // there isn't a suitable dummy component set up for this slot
#endif
#endif
ENDFUNC
/// PURPOSE: Marks the component item as new for the ped model
FUNC BOOL SET_PED_COMP_ITEM_IS_NEW_SP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bNew)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
// First check that the ped model can have the component item
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
AND NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
// Set appropriate singleplayer data
IF bNew
// clear the appropriate bit
GET_BITSET_FROM_COMP_TYPE(eType, g_sTempCompData[1].iPedID, g_sTempCompData[1].iBitset, PED_COMPONENT_USED_SLOT, g_sTempCompData[1].iItemBit, FALSE, TRUE)
ELSE
// set the appropriate bit
GET_BITSET_FROM_COMP_TYPE(eType, g_sTempCompData[1].iPedID, g_sTempCompData[1].iBitset, PED_COMPONENT_USED_SLOT, g_sTempCompData[1].iItemBit, TRUE, FALSE)
ENDIF
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_COMP_ITEM_IS_NEW_SP] Component item[", ENUM_TO_INT(eItem), "] doesn't belong to ped[", g_sTempCompData[1].iPedID, "]")
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Marks the component item as new for the ped model
FUNC BOOL SET_PED_COMP_ITEM_IS_NEW_MP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bNew)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
// First check that the ped model can have the component item
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
// Set appropriate multiplayer data
MP_INT_STATS eStat
IF GET_MP_PED_COMPONENT_USED_STAT(eType, g_sTempCompData[1].iBitset, eStat)
INT iStatValue = GET_MP_INT_CHARACTER_STAT(eStat, g_iPedComponentSlot)
IF bNew
CLEAR_BIT(iStatValue, g_sTempCompData[1].iItemBit)
ELSE
SET_BIT(iStatValue, g_sTempCompData[1].iItemBit)
ENDIF
SET_MP_INT_CHARACTER_STAT(eStat, iStatValue, g_iPedComponentSlot)
RETURN TRUE
ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_COMP_ITEM_NEW_MP] Component item[", ENUM_TO_INT(eItem), "] doesn't belong to ped[", g_sTempCompData[1].iPedID, "]")
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Returns the ped component item for the ped.
/// NOTE: DUMMY_PED_COMP returned if no item found or prop
FUNC PED_COMP_NAME_ENUM GET_PED_COMP_ITEM_CURRENT_MP(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, INT iPropPos = -1)
//CPRINTLN(DEBUG_PED_COMP, "GET_PED_COMPONENT_ITEM_CURRENT: eType= ", GET_PED_COMP_TYPE_STRING(eType))
IF NOT IS_PED_INJURED(ped)
IF eType = COMP_TYPE_OUTFIT
// Cycle through each item for the specified component type
INT i
FOR i = 0 TO PED_COMPONENTS_OUTFITS-1
IF IS_PED_COMP_ITEM_CURRENT_MP(ped, eType, INT_TO_ENUM(PED_COMP_NAME_ENUM, i))
RETURN INT_TO_ENUM(PED_COMP_NAME_ENUM, i)
ENDIF
ENDFOR
ELIF eType = COMP_TYPE_PROPGROUP
// Cycle through each item for the specified component type
INT i
FOR i = 0 TO PED_COMPONENTS_PROPGROUPS-1
IF IS_PED_COMP_ITEM_CURRENT_MP(ped, eType, INT_TO_ENUM(PED_COMP_NAME_ENUM, i))
RETURN INT_TO_ENUM(PED_COMP_NAME_ENUM, i)
ENDIF
ENDFOR
RETURN PROPGROUP_NONE
ELIF eType = COMP_TYPE_PROPS
// prop
IF iPropPos = -1
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), "GET_PED_COMP_ITEM_CURRENT_SP checking prop type without a prop pos: ")
SCRIPT_ASSERT("GET_PED_COMP_ITEM_CURRENT_SP checking prop type without a prop pos. Bug for Andy Minghella")
ELSE
RETURN GET_PED_PROP_CURRENT_FROM_LOOKUP(ped, INT_TO_ENUM(PED_PROP_POSITION, iPropPos))
ENDIF
ELSE
// normal item
RETURN GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, eType)
ENDIF
ENDIF
RETURN DUMMY_PED_COMP
ENDFUNC
/// PURPOSE: Returns the ped component item for the ped.
/// NOTE: DUMMY_PED_COMP returned if no item found or prop
FUNC PED_COMP_NAME_ENUM GET_PED_COMP_ITEM_CURRENT_SP(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, INT iPropPos = -1)
//CPRINTLN(DEBUG_PED_COMP, "GET_PED_COMPONENT_ITEM_CURRENT: eType= ", GET_PED_COMP_TYPE_STRING(eType))
IF NOT IS_PED_INJURED(ped)
IF eType = COMP_TYPE_OUTFIT
// Cycle through each item for the specified component type
INT i
FOR i = 0 TO PED_COMPONENTS_OUTFITS-1
IF IS_PED_COMP_ITEM_CURRENT_SP(ped, eType, INT_TO_ENUM(PED_COMP_NAME_ENUM, i))
RETURN INT_TO_ENUM(PED_COMP_NAME_ENUM, i)
ENDIF
ENDFOR
ELIF eType = COMP_TYPE_PROPGROUP
// Cycle through each item for the specified component type
INT i
FOR i = 0 TO PED_COMPONENTS_PROPGROUPS-1
IF IS_PED_COMP_ITEM_CURRENT_SP(ped, eType, INT_TO_ENUM(PED_COMP_NAME_ENUM, i))
RETURN INT_TO_ENUM(PED_COMP_NAME_ENUM, i)
ENDIF
ENDFOR
RETURN PROPGROUP_NONE
ELIF eType = COMP_TYPE_PROPS
// prop
IF iPropPos = -1
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), "GET_PED_COMP_ITEM_CURRENT_SP checking prop type without a prop pos: ")
SCRIPT_ASSERT("GET_PED_COMP_ITEM_CURRENT_SP checking prop type without a prop pos. Bug for Andy Minghella")
ELSE
RETURN GET_PED_PROP_CURRENT_FROM_LOOKUP(ped, INT_TO_ENUM(PED_PROP_POSITION, iPropPos))
ENDIF
ELSE
// normal item
RETURN GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, eType)
ENDIF
ENDIF
RETURN DUMMY_PED_COMP
ENDFUNC
/// PURPOSE: Only used in SET_PED_COMP_ITEM_CURRENT functions, uses global struct
FUNC BOOL CAN_PED_HAVE_PED_COMP_ITEM(BOOL bMustBeAvailable #IF IS_DEBUG_BUILD , PED_COMP_NAME_ENUM eItem, PED_COMP_TYPE_ENUM eType #ENDIF)
// First check that the ped model can have the component item
IF NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
CPRINTLN(DEBUG_PED_COMP, "[CAN_PED_HAVE_PED_COMP_ITEM] Component item[", ENUM_TO_INT(eItem), "] doesn't belong to ped[", g_sTempCompData[1].iPedID, "]" , GET_PED_COMP_TYPE_STRING(eType))
RETURN FALSE
ENDIF
IF bMustBeAvailable = TRUE
IF NOT IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT)
CPRINTLN(DEBUG_PED_COMP, "[CAN_PED_HAVE_PED_COMP_ITEM] Component item[", ENUM_TO_INT(eItem), "] not available for ped[", g_sTempCompData[1].iPedID, "]" , GET_PED_COMP_TYPE_STRING(eType))
RETURN FALSE
ENDIF
IF NOT IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_ACQUIRED_BIT)
CPRINTLN(DEBUG_PED_COMP, "[CAN_PED_HAVE_PED_COMP_ITEM] Component item[", ENUM_TO_INT(eItem), "] not acquired for ped[", g_sTempCompData[1].iPedID, "]" , GET_PED_COMP_TYPE_STRING(eType))
RETURN FALSE
ENDIF
ENDIF
// ped can have this item
RETURN TRUE
ENDFUNC
/// PURPOSE: Only used in SET_PED_COMP_ITEM_CURRENT functions
PROC SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bDoCopies = TRUE)
IF NETWORK_IS_GAME_IN_PROGRESS()
IF g_iPedComponentSlot != GET_ACTIVE_CHARACTER_SLOT()
#IF USE_TU_CHANGES
OR eItem = DUMMY_PED_COMP
#ENDIF
EXIT
ENDIF
g_sTempCompData[2] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
#IF USE_TU_CHANGES
IF (IS_BIT_SET(g_sTempCompData[2].iProperties, PED_COMPONENT_AVAILABLE_BIT))
AND (IS_BIT_SET(g_sTempCompData[2].iProperties, PED_COMPONENT_IS_DLC_BIT))
IF eType = COMP_TYPE_OUTFIT
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_USED_SLOT)
ELIF eType = COMP_TYPE_PROPGROUP
// Skip
ELIF eType = COMP_TYPE_PROPS
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_USED_SLOT)
ELSE
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_USED_SLOT)
ENDIF
// Flag alt items as viewed also...
IF bDoCopies
INT iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(g_iLastDLCItemNameHash)
INT iAltComp
INT iRetNameHash, iRetCompEnum, iRetType
INT iVarCount = 0
REPEAT iAltComps iAltComp
IF iVarCount < COUNT_OF(g_iPedComponentUsedDLCVariantHashes)
g_iPedComponentUsedDLCVariantHashes[iVarCount] = -1
g_iPedComponentUsedDLCVariantTypes[iVarCount] = -1
ELSE
#IF IS_DEBUG_BUILD
SCRIPT_ASSERT("Need to increase size of g_iPedComponentUsedDLCVariantHashes, tell Kenneth R.")
#ENDIF
ENDIF
GET_VARIANT_COMPONENT(g_iLastDLCItemNameHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType != ENUM_TO_INT(PED_COMP_DECL)
AND iRetType != ENUM_TO_INT(PED_COMP_SPECIAL2)
IF (eType = COMP_TYPE_LEGS AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_STOCKINGS, ENUM_TO_INT(SHOP_PED_COMPONENT)))
// The shoes that come with the stocking feet can be viewed and purchased separately so don't clear in this case.
// Alternative DLC item
ELIF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
SET_BIT_SHOP_PED_APPAREL_SCRIPT(iRetNameHash, PED_COMPONENT_USED_SLOT)
// Incase we have not added all the variants for each DLC item we should cache items and then do another copy check.
IF iVarCount < COUNT_OF(g_iPedComponentUsedDLCVariantHashes)
g_iPedComponentUsedDLCVariantHashes[iVarCount] = iRetNameHash
g_iPedComponentUsedDLCVariantTypes[iVarCount] = iRetType
iVarCount++
ENDIF
// Alternative on-disk item
ELSE
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, GET_COMP_TYPE_FROM_PED_COMPONENT(INT_TO_ENUM(PED_COMPONENT, iRetType)), INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetCompEnum), FALSE)
ENDIF
ENDIF
ENDREPEAT
// Do another check for copies on the DLC items...
g_iPedComponentUsedNest++
IF (g_iPedComponentUsedNest < 2)
REPEAT iVarCount iAltComp
IF iAltComp < COUNT_OF(g_iPedComponentUsedDLCVariantHashes)
IF g_iPedComponentUsedDLCVariantHashes[iAltComp] != -1
PRINTLN("[kr] CLOTHES - processing copies for alt dlc item ", g_iPedComponentUsedDLCVariantHashes[iAltComp], " of type ", g_iPedComponentUsedDLCVariantTypes[iAltComp])
IF ePedModel = MP_M_FREEMODE_01
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, GET_COMP_TYPE_FROM_PED_COMPONENT(INT_TO_ENUM(PED_COMPONENT, g_iPedComponentUsedDLCVariantTypes[iAltComp])), GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, g_iPedComponentUsedDLCVariantHashes[iAltComp], GET_COMP_TYPE_FROM_PED_COMPONENT(INT_TO_ENUM(PED_COMPONENT, g_iPedComponentUsedDLCVariantTypes[iAltComp])), 3), TRUE)
ELSE
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, GET_COMP_TYPE_FROM_PED_COMPONENT(INT_TO_ENUM(PED_COMPONENT, g_iPedComponentUsedDLCVariantTypes[iAltComp])), GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, g_iPedComponentUsedDLCVariantHashes[iAltComp], GET_COMP_TYPE_FROM_PED_COMPONENT(INT_TO_ENUM(PED_COMPONENT, g_iPedComponentUsedDLCVariantTypes[iAltComp])), 4), TRUE)
ENDIF
ENDIF
ENDIF
ENDREPEAT
ENDIF
g_iPedComponentUsedNest--
ENDIF
// Processed DLC item so bail out
EXIT
ENDIF
#ENDIF
IF (IS_BIT_SET(g_sTempCompData[2].iProperties, PED_COMPONENT_AVAILABLE_BIT))
AND NOT (IS_BIT_SET(g_sTempCompData[2].iProperties, PED_COMPONENT_IS_DLC_BIT))
// Set appropriate multiplayer data
MP_INT_STATS eStat
IF GET_MP_PED_COMPONENT_USED_STAT(eType, g_sTempCompData[1].iBitset, eStat)
INT iStatValue = GET_MP_INT_CHARACTER_STAT(eStat, g_iPedComponentSlot)
SET_BIT(iStatValue, g_sTempCompData[2].iItemBit)
SET_MP_INT_CHARACTER_STAT(eStat, iStatValue, g_iPedComponentSlot)
ENDIF
// Some items have multiple copies (like forwards / backwards caps)
// setting one as no longer new does the same for the copy item
// IF THIS IS EDITED- UPDATE SET_PED_COMP_ITEM_ACQUIRED_MP + SET_PED_COMP_ITEM_AVAILABLE_MP
IF bDoCopies = TRUE
INT iCopyItem
PED_COMP_NAME_ENUM eCopyItem
// ------------male-------------------------------
IF ePedModel = MP_M_FREEMODE_01
IF eType = COMP_TYPE_PROPS
// buying a forwards cap gets you the backwards one too
IF (eItem >= PROPS_FMM_HAT_10_0 AND eItem <= PROPS_FMM_HAT_10_7)
//CPRINTLN(DEBUG_PED_COMP, "Viewed a forwards cap- adding backwards version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(PROPS_FMM_HAT_9_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
// buying a backwards cap gets you the forwards one too
ELIF (eItem >= PROPS_FMM_HAT_9_0 AND eItem <= PROPS_FMM_HAT_9_7)
//CPRINTLN(DEBUG_PED_COMP, "Viewed a backwards cap- adding forwards version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(PROPS_FMM_HAT_10_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
// buying an open collar special item gives you the closed collar version
IF (eItem >= SPECIAL_FMM_3_0 AND eItem <= SPECIAL_FMM_3_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed an open collar item giving closed collar version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_4_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_4_0 AND eItem <= SPECIAL_FMM_4_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed a closed collar item giving open collar version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_3_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
// buying an open collar special item gives you the closed collar version
ELIF (eItem >= SPECIAL_FMM_6_0 AND eItem <= SPECIAL_FMM_6_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed an open collar item giving closed collar version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_7_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_7_0 AND eItem <= SPECIAL_FMM_7_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed a closed collar item giving open collar version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_6_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
// buying an open collar special item gives you the closed collar version
ELIF (eItem >= SPECIAL_FMM_11_0 AND eItem <= SPECIAL_FMM_11_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed an open collar item giving closed collar version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_10_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
// buying a closed collar special item gives you the open collar version
ELIF (eItem >= SPECIAL_FMM_10_0 AND eItem <= SPECIAL_FMM_10_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed a closed collar item giving open collar version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_11_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
// buying a special item worn under leather jacket gives you jbib version
ELIF (eItem >= SPECIAL_FMM_2_0 AND eItem <= SPECIAL_FMM_2_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed item under leather jacket giving jbib item: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(JBIB_FMM_0_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_JBIB, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
ELIF (eItem >= SPECIAL_FMM_14_0 AND eItem <= SPECIAL_FMM_14_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed item under leather jacket giving jbib item: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(JBIB_FMM_1_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_JBIB, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
ENDIF
ELIF eType = COMP_TYPE_JBIB
// buying a jbib that can be worn under leather jacket gives you under leather jacket version
IF (eItem >= JBIB_FMM_0_0 AND eItem <= JBIB_FMM_0_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed jbib that can be worn under leather jacket giving special item: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_2_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
ELIF (eItem >= JBIB_FMM_1_0 AND eItem <= JBIB_FMM_1_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed jbib that can be worn under leather jacket giving special item: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMM_14_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
#IF USE_TU_CHANGES
// Buying the checked shirts gives you the DLC special version
ELIF (eItem >= JBIB_FMM_14_0 AND eItem <= JBIB_FMM_14_15)
SWITCH eItem
CASE JBIB_FMM_14_0
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_0"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_0"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_1
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_1"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_1"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_2
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_2"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_2"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_3
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_3"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_3"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_4
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_4"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_4"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_5
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_5"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_5"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_6
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_6"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_6"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_7
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_7"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_7"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_8
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_8"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_8"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_9
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_9"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_9"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_10
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_10"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_10"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_11
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_11"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_11"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_12
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_12"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_12"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_13
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_13"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_13"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_14
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_14"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_14"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
CASE JBIB_FMM_14_15
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS4_15"), COMP_TYPE_SPECIAL, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_M_ACCS5_15"), COMP_TYPE_SPECIAL, 3), FALSE)
BREAK
ENDSWITCH
#ENDIF
ENDIF
#IF USE_TU_CHANGES
ELIF eType = COMP_TYPE_TEETH
// buying a tie also gives you the vest version
IF (eItem >= TEETH_FMM_10_0 AND eItem <= TEETH_FMM_10_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed a normal tie item so we are giving giving the waistcoat version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
SWITCH g_sTempCompData[2].iTexture
CASE 0
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_0"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_0"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 1
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_1"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_1"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 2
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_2"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_2"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 3
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_3"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_3"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 4
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_4"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_4"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 5
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_5"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_5"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 6
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_6"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_6"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 7
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_7"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_7"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 8
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_8"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_8"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 9
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_9"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_9"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 10
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_10"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_10"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 11
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_11"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_11"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 12
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_12"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_12"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 13
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_13"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_13"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 14
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_14"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_14"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 15
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH0_15"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH2_15"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
ENDSWITCH
ELIF (eItem >= TEETH_FMM_12_0 AND eItem <= TEETH_FMM_12_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed a skinny tie item so we are giving giving the waistcoat version: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
SWITCH g_sTempCompData[2].iTexture
CASE 0
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_0"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_0"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 1
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_1"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_1"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 2
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_2"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_2"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 3
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_3"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_3"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 4
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_4"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_4"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 5
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_5"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_5"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 6
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_6"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_6"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 7
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_7"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_7"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 8
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_8"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_8"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 9
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_9"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_9"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 10
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_10"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_10"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 11
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_11"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_11"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 12
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_12"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_12"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 13
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_13"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_13"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 14
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_14"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_14"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
CASE 15
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH1_15"), COMP_TYPE_TEETH, 3), FALSE)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI2_M_TEETH3_15"), COMP_TYPE_TEETH, 3), FALSE)
BREAK
ENDSWITCH
ENDIF
#ENDIF
ENDIF
// ------------female-------------------------------
ELIF ePedModel = MP_F_FREEMODE_01
IF eType = COMP_TYPE_JBIB
// buying jbib that can be worn under sports jacket gets you extra special version
IF (eItem >= JBIB_FMF_0_0 AND eItem <= JBIB_FMF_0_15)
//CPRINTLN(DEBUG_PED_COMP, "Viewed jbib that can be worn under sports jacket giving special item: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
iCopyItem = ENUM_TO_INT(SPECIAL_FMF_1_0) + g_sTempCompData[2].iTexture
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, INT_TO_ENUM(PED_COMP_NAME_ENUM, iCopyItem), FALSE)
ENDIF
ENDIF
ENDIF
// copies that are needed for male + female characters
g_sTempCompData[2] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
IF eType = COMP_TYPE_JBIB
// buying jbibs that can be worn under jackets also gets you the under jacket special item
eCopyItem = GET_SPECIAL_FROM_JBIB(ePedModel, eItem, g_sTempCompData[2].iTexture)
IF eCopyItem <> DUMMY_PED_COMP
//CPRINTLN(DEBUG_PED_COMP, "Viewed jacket compatible jbib- adding special item: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_SPECIAL, eCopyItem, FALSE)
ENDIF
#IF USE_TU_CHANGES
// Buying the camisole shirts gives you the DLC special version
IF (eItem >= JBIB_FMF_12_0 AND eItem <= JBIB_FMM_12_15)
SWITCH eItem
CASE JBIB_FMF_12_7
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_F_ACCS2_0"), COMP_TYPE_TEETH, 4), FALSE)
BREAK
CASE JBIB_FMF_12_8
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_F_ACCS2_1"), COMP_TYPE_TEETH, 4), FALSE)
BREAK
CASE JBIB_FMF_12_9
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BUSI_F_ACCS2_2"), COMP_TYPE_TEETH, 4), FALSE)
BREAK
ENDSWITCH
ENDIF
#ENDIF
ELIF eType = COMP_TYPE_SPECIAL
// buying items worn under jackets also gets you the normal jbib version
eCopyItem = GET_JBIB_FROM_SPECIAL(ePedModel, eItem, g_sTempCompData[2].iTexture)
IF eCopyItem <> DUMMY_PED_COMP
//CPRINTLN(DEBUG_PED_COMP, "Viewed under jacket special item- adding jbib: g_sTempCompData[2].iTexture ", g_sTempCompData[2].iTexture)
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_JBIB, eCopyItem, FALSE)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Only used in SET_PED_COMP_ITEM_CURRENT functions, uses global struct
PROC SET_SP_PED_COMP_ITEM_NO_LONGER_NEW(PED_COMP_TYPE_ENUM eType)
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
AND NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
// set the appropriate bit
GET_BITSET_FROM_COMP_TYPE(eType, g_sTempCompData[1].iPedID, g_sTempCompData[1].iBitset, PED_COMPONENT_USED_SLOT, g_sTempCompData[1].iItemBit, TRUE, FALSE)
ENDIF
#IF USE_TU_CHANGES
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
AND (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
IF eType = COMP_TYPE_OUTFIT
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_USED_SLOT)
ELIF eType = COMP_TYPE_PROPGROUP
// Skip
ELIF eType = COMP_TYPE_PROPS
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_USED_SLOT)
ELSE
SET_BIT_SHOP_PED_APPAREL_SCRIPT(g_iLastDLCItemNameHash, PED_COMPONENT_USED_SLOT)
ENDIF
ENDIF
#ENDIF
ENDPROC
/// PURPOSE:
/// If the prop is valid it gets set on. Otherwise it gets cleared.
/// PARAMS:
/// mPed - the ped we want to equip the prop for
/// ePropPos - the anchor position of this prop
/// iDrawable - drawable number of prop
/// iTexture - texture variation of prop
PROC SAFE_SET_PROP(PED_INDEX mPed, PED_PROP_POSITION ePropPos, INT iDrawable, INT iTexture)
IF iDrawable = -1
PRINTLN("SAFE_SET_PROP: Clearing ped prop on anchor ", GET_PROP_POSITION_STRING(ePropPos))
CLEAR_PED_PROP(mPed, ePropPos)
IF ePropPos = ANCHOR_HEAD
SET_PED_CONFIG_FLAG(mPed, PCF_HasHelmet, FALSE)
SET_PED_CONFIG_FLAG(mPed, PCF_DontTakeOffHelmet, FALSE)
ENDIF
ELSE
PRINTLN("SAFE_SET_PROP: Setting ped prop ", iDrawable, ",", iTexture, " on anchor ", GET_PROP_POSITION_STRING(ePropPos))
#IF NOT IS_NEXTGEN_BUILD
// Can't wear watch+hat+glasses+earpiece so clear one of them.
IF ePropPos = ANCHOR_LEFT_WRIST
IF GET_PED_PROP_INDEX(mPed, ANCHOR_HEAD) != -1
AND GET_PED_PROP_INDEX(mPed, ANCHOR_EYES) != -1
AND GET_PED_PROP_INDEX(mPed, ANCHOR_EARS) != -1
CLEAR_PED_PROP(mPed, ANCHOR_EARS)
ENDIF
ELIF ePropPos = ANCHOR_HEAD
IF GET_PED_PROP_INDEX(mPed, ANCHOR_LEFT_WRIST) != -1
AND GET_PED_PROP_INDEX(mPed, ANCHOR_EYES) != -1
AND GET_PED_PROP_INDEX(mPed, ANCHOR_EARS) != -1
CLEAR_PED_PROP(mPed, ANCHOR_EARS)
ENDIF
ELIF ePropPos = ANCHOR_EARS
IF GET_PED_PROP_INDEX(mPed, ANCHOR_LEFT_WRIST) != -1
AND GET_PED_PROP_INDEX(mPed, ANCHOR_HEAD) != -1
AND GET_PED_PROP_INDEX(mPed, ANCHOR_EYES) != -1
CLEAR_PED_PROP(mPed, ANCHOR_LEFT_WRIST)
ENDIF
ELIF ePropPos = ANCHOR_EYES
IF GET_PED_PROP_INDEX(mPed, ANCHOR_LEFT_WRIST) != -1
AND GET_PED_PROP_INDEX(mPed, ANCHOR_HEAD) != -1
AND GET_PED_PROP_INDEX(mPed, ANCHOR_EARS) != -1
CLEAR_PED_PROP(mPed, ANCHOR_EARS)
ENDIF
ENDIF
#ENDIF
SET_PED_PROP_INDEX(mPed, ePropPos, iDrawable, iTexture, NETWORK_IS_GAME_IN_PROGRESS())
IF ePropPos = ANCHOR_HEAD
PED_COMP_NAME_ENUM eItem = GET_PROP_ITEM_FROM_VARIATIONS(mPed, iDrawable, iTexture, ePropPos)
IF IS_ITEM_A_HELMET(GET_ENTITY_MODEL(mPed), COMP_TYPE_PROPS, eItem, GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(mPed), ENUM_TO_INT(ANCHOR_HEAD), iDrawable, iTexture))
SET_PED_CONFIG_FLAG(mPed, PCF_HasHelmet, TRUE)
SET_PED_CONFIG_FLAG(mPed, PCF_DontTakeOffHelmet, TRUE)
ELSE
SET_PED_CONFIG_FLAG(mPed, PCF_HasHelmet, FALSE)
SET_PED_CONFIG_FLAG(mPed, PCF_DontTakeOffHelmet, FALSE)
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Checks if the ped's hair is currently forced changed by an item
/// If so, checks if it is now safe to restore the saved hair
/// NOTE: Only use force restore for Franklin's balaclava- a hair item that forces hair change!
FUNC BOOL IS_SAFE_TO_RESTORE_SAVED_HAIRCLF(PED_INDEX mPed, MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM &eHairToRestore, BOOL bForceRestore = FALSE)
// check if we are now safe to restore the ped's stored hair (singleplayer only)
enumCharacterList eChar = GET_PLAYER_CHARACTER_FROM_MODELCLF(ePedModel)
IF g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange <> DUMMY_PED_COMP
// player's hair is currently force changed
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(mPed, g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedHairChange, g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange)
OR bForceRestore = TRUE
// the item that forced the change is no longer equipped, restore hair + reset values
eHairToRestore = g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eStoredHairstyle
g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange = DUMMY_PED_COMP
g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedHairChange = COMP_TYPE_HAIR
CPRINTLN(DEBUG_PED_COMP, "Hair for ", eChar, " can now safely be reset to ", eHairToRestore, " bForceRestore = ", bForceRestore)
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_SAFE_TO_RESTORE_SAVED_HAIRNRM(PED_INDEX mPed, MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM &eHairToRestore, BOOL bForceRestore = FALSE)
// check if we are now safe to restore the ped's stored hair (singleplayer only)
enumCharacterList eChar = GET_PLAYER_CHARACTER_FROM_MODELNRM(ePedModel)
IF g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange <> DUMMY_PED_COMP
// player's hair is currently force changed
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(mPed, g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedHairChange, g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange)
OR bForceRestore = TRUE
// the item that forced the change is no longer equipped, restore hair + reset values
eHairToRestore = g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eStoredHairstyle
g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange = DUMMY_PED_COMP
g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedHairChange = COMP_TYPE_HAIR
CPRINTLN(DEBUG_PED_COMP, "Hair for ", eChar, " can now safely be reset to ", eHairToRestore, " bForceRestore = ", bForceRestore)
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_SAFE_TO_RESTORE_SAVED_HAIR(PED_INDEX mPed, MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM &eHairToRestore, BOOL bForceRestore = FALSE)
#if USE_CLF_DLC
if g_bLoadedClifford
return IS_SAFE_TO_RESTORE_SAVED_HAIRCLF(mPed,ePedModel,eHairToRestore,bForceRestore)
endif
#endif
#if USE_NRM_DLC
if g_bLoadedNorman
return IS_SAFE_TO_RESTORE_SAVED_HAIRNRM(mPed,ePedModel,eHairToRestore,bForceRestore)
endif
#endif
// check if we are now safe to restore the ped's stored hair (singleplayer only)
enumCharacterList eChar = GET_PLAYER_CHARACTER_FROM_MODEL(ePedModel)
IF g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange <> DUMMY_PED_COMP
// player's hair is currently force changed
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(mPed, g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedHairChange, g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange)
OR bForceRestore = TRUE
// the item that forced the change is no longer equipped, restore hair + reset values
eHairToRestore = g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eStoredHairstyle
g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange = DUMMY_PED_COMP
g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedHairChange = COMP_TYPE_HAIR
CPRINTLN(DEBUG_PED_COMP, "Hair for ", eChar, " can now safely be reset to ", eHairToRestore, " bForceRestore = ", bForceRestore)
RETURN TRUE
ELSE
//CPRINTLN(DEBUG_PED_COMP, "Force change item still equipped. ", GET_PED_COMP_TYPE_STRING(g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedHairChange), " item: ", g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedHairChange)
ENDIF
ELSE
//CPRINTLN(DEBUG_PED_COMP, "Hair for ", eChar, " isn't force changed at the moment.")
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Checks if the ped's beard is currently forced changed by an item
/// If so, checks if it is now safe to restore the saved beard
FUNC BOOL IS_SAFE_TO_RESTORE_SAVED_BEARDCLF(PED_INDEX mPed, MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM &eBeardToRestore)
// check if we are now safe to restore the ped's stored hair (singleplayer only)
enumCharacterList eChar = GET_PLAYER_CHARACTER_FROM_MODELCLF(ePedModel)
IF g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange <> DUMMY_PED_COMP
// player's hair is currently force changed
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(mPed, g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedBeardChange, g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange)
// the item that forced the change is no longer equipped, restore beard + reset values
eBeardToRestore = g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eStoredBeard
g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange = DUMMY_PED_COMP
g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedBeardChange = COMP_TYPE_BERD
CPRINTLN(DEBUG_PED_COMP, "Beard for ", eChar, " can now safely be reset to ", eBeardToRestore)
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_SAFE_TO_RESTORE_SAVED_BEARDNRM(PED_INDEX mPed, MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM &eBeardToRestore)
// check if we are now safe to restore the ped's stored hair (singleplayer only)
enumCharacterList eChar = GET_PLAYER_CHARACTER_FROM_MODELNRM(ePedModel)
IF g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange <> DUMMY_PED_COMP
// player's hair is currently force changed
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(mPed, g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedBeardChange, g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange)
// the item that forced the change is no longer equipped, restore beard + reset values
eBeardToRestore = g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eStoredBeard
g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange = DUMMY_PED_COMP
g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedBeardChange = COMP_TYPE_BERD
CPRINTLN(DEBUG_PED_COMP, "Beard for ", eChar, " can now safely be reset to ", eBeardToRestore)
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_SAFE_TO_RESTORE_SAVED_BEARD(PED_INDEX mPed, MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM &eBeardToRestore)
#if USE_CLF_DLC
if g_bLoadedClifford
return IS_SAFE_TO_RESTORE_SAVED_BEARDCLF(mPed,ePedModel,eBeardToRestore)
endif
#endif
#if USE_NRM_DLC
if g_bLoadedNorman
return IS_SAFE_TO_RESTORE_SAVED_BEARDNRM(mPed,ePedModel,eBeardToRestore)
endif
#endif
// check if we are now safe to restore the ped's stored hair (singleplayer only)
enumCharacterList eChar = GET_PLAYER_CHARACTER_FROM_MODEL(ePedModel)
IF g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange <> DUMMY_PED_COMP
// player's hair is currently force changed
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(mPed, g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedBeardChange, g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange)
// the item that forced the change is no longer equipped, restore beard + reset values
eBeardToRestore = g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eStoredBeard
g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange = DUMMY_PED_COMP
g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedBeardChange = COMP_TYPE_BERD
CPRINTLN(DEBUG_PED_COMP, "Beard for ", eChar, " can now safely be reset to ", eBeardToRestore)
RETURN TRUE
ELSE
//CPRINTLN(DEBUG_PED_COMP, "Beard Force change item still equipped. ", GET_PED_COMP_TYPE_STRING(g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eTypeThatForcedBeardChange), " item: ", g_savedGlobals.sPlayerData.sInfo.sVariations[eChar].eItemThatForcedBeardChange)
ENDIF
ELSE
//CPRINTLN(DEBUG_PED_COMP, "Beard for ", eChar, " isn't force changed at the moment.")
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// If the player equips a golf top or golf pants it becomes part of his golf outfit
PROC UPDATE_GOLF_OUTFIT(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
// is this item is a golf item, update the player's golf outfit
// only done after the player has unlocked the golf outfit
PED_COMP_NAME_ENUM eGolfOutfit
IF ePedModel = PLAYER_ZERO eGolfOutfit = OUTFIT_P0_GOLF
ELIF ePedModel = PLAYER_ONE eGolfOutfit = OUTFIT_P1_GOLF
ELIF ePedModel = PLAYER_TWO eGolfOutfit = OUTFIT_P2_GOLF
ENDIF
IF IS_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, COMP_TYPE_OUTFIT, eGolfOutfit)
IF IS_GOLF_ITEM(ePedModel, eType, eItem)
enumCharacterList eChar = GET_PLAYER_CHARACTER_FROM_MODEL(ePedModel)
IF eType = COMP_TYPE_TORSO
g_savedGlobals.sPlayerData.sInfo.eGolfTop[eChar] = eItem
CPRINTLN(DEBUG_PED_COMP, "Updating golf top for ", eChar, " to ", eItem)
ELIF eType = COMP_TYPE_LEGS
g_savedGlobals.sPlayerData.sInfo.eGolfPants[eChar] = eItem
CPRINTLN(DEBUG_PED_COMP, "Updating golf pants for ", eChar, " to ", eItem)
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Sets the current component item for the ped
FUNC BOOL SET_PED_COMP_ITEM_CURRENT_SP(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bMustBeAvailable = TRUE, INT iPaletteOverride = -1, BOOL bUseGlobalOutfitData = FALSE, BOOL bPreviewing = FALSE, BOOL bReEquipAccessories = FALSE, INT iHairTint1 = -1, INT iHairTint2 = -1, INT iSlot = -1, BOOL bBlockTorsoDecal = FALSE, BOOL bForceOnSpawning=FALSE, BOOL bSkipTorsoUpdate = FALSE)
UNUSED_PARAMETER(iHairTint1)
UNUSED_PARAMETER(iHairTint2)
UNUSED_PARAMETER(iSlot)
UNUSED_PARAMETER(bSkipTorsoUpdate)
IF IS_PED_INJURED(ped)
OR eItem = DUMMY_PED_COMP
RETURN FALSE
ENDIF
unused_parameter(bBlockTorsoDecal)
unused_parameter(bForceOnSpawning)
CPRINTLN(DEBUG_PED_COMP, "SET_PED_COMP_ITEM_CURRENT_SP: eType= ", GET_PED_COMP_TYPE_STRING(eType), " called by ", GET_THIS_SCRIPT_NAME())
// Set the depth so we can tell if we should be setting any requisites
g_iPedComponentNest++
INT i, j, k
PED_COMP_NAME_ENUM eRequisite
PED_COMP_NAME_ENUM eReturnItem
// items we may want to restore after outfit equip
PED_COMP_NAME_ENUM eSpecialItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eSpecial2Item = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eEyeProp = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eHeadProp = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eEarProp = DUMMY_PED_COMP
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
IF bUseGlobalOutfitData = FALSE
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
// check ped can have this item
IF NOT CAN_PED_HAVE_PED_COMP_ITEM(bMustBeAvailable #IF IS_DEBUG_BUILD ,eItem, eType #ENDIF)
g_iPedComponentNest--
RETURN FALSE
ENDIF
// set SP only data
SET_SP_PED_COMP_ITEM_NO_LONGER_NEW(eType)
ENDIF
// ------------ OUTFITS---------------------------------------------------------
IF eType = COMP_TYPE_OUTFIT
// store some of the current items so that we can re-equip them after the outfit if possible
IF bReEquipAccessories = TRUE
// ----special items----
IF ePedModel = PLAYER_ONE
// Franklin's bandana mask is the only special item we keep
eSpecialItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_SPECIAL)
IF eSpecialItem <> SPECIAL_P1_MASK
eSpecialItem = DUMMY_PED_COMP
ENDIF
ENDIF
//------ special 2 items------
// Masks available from the shop are only special2 items we keep
eSpecial2Item = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_SPECIAL2)
IF ePedModel = PLAYER_ZERO
IF (eSpecial2Item >= SPECIAL2_P0_WRESTLER_MASK_0 AND eSpecial2Item <= SPECIAL2_P0_WRESTLER_MASK_5)
// store this item
ELSE
eSpecial2Item = DUMMY_PED_COMP
ENDIF
ELIF ePedModel = PLAYER_ONE
IF (eSpecial2Item >= SPECIAL2_P1_WRESTLER_MASK_0 AND eSpecial2Item <= SPECIAL2_P1_WRESTLER_MASK_5)
// store this item
ELSE
eSpecial2Item = DUMMY_PED_COMP
ENDIF
ELIF ePedModel = PLAYER_TWO
IF (eSpecial2Item >= SPECIAL2_P2_WRESTLER_MASK_0 AND eSpecial2Item <= SPECIAL2_P2_WRESTLER_MASK_5)
OR (eSpecial2Item >= SPECIAL2_P2_MASK_MONSTER_GREEN AND eSpecial2Item <= SPECIAL2_P2_MASK_MONSTER_RED)
// store this item
ELSE
eSpecial2Item = DUMMY_PED_COMP
ENDIF
ENDIF
// ---------eye props --------------------
// only keep glasses
eEyeProp = GET_PED_PROP_CURRENT_FROM_LOOKUP(ped, ANCHOR_EYES)
IF NOT IS_ITEM_PAIR_OF_GLASSES(ePedModel, COMP_TYPE_PROPS, eEyeProp)
eEyeProp = DUMMY_PED_COMP
ENDIF
// ---------head props -------------------
// keep masks and hats
eHeadProp = GET_PED_PROP_CURRENT_FROM_LOOKUP(ped, ANCHOR_HEAD)
IF NOT IS_ITEM_A_MASK(ePedModel, COMP_TYPE_PROPS, eHeadProp)
AND NOT IS_ITEM_A_HAT(ePedModel, COMP_TYPE_PROPS, eHeadProp)
eHeadProp = DUMMY_PED_COMP
ENDIF
// ---------ear props --------------------
// keep Franklin's earrings
IF ePedModel = PLAYER_ONE
eEarProp = GET_PED_PROP_CURRENT_FROM_LOOKUP(ped, ANCHOR_EARS)
ENDIF
ENDIF
// Always clear ped props so we dont go over prop limit
CLEAR_ALL_PED_PROPS(ped)
// get outfit info
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData
IF bUseGlobalOutfitData = TRUE
sOutfitData = g_sTempOutfitData
ELSE
sOutfitData= GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
ENDIF
// Set all the flagged component items
FOR i = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sOutfitData.eItems[i] <> DUMMY_PED_COMP
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i])
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
// -------PROP GROUP FOR OUTFIT---------------------------------
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) = COMP_TYPE_PROPGROUP
PED_COMP_PROPS_DATA_STRUCT sPropGroupData
IF bUseGlobalOutfitData = TRUE
sPropGroupData = g_sTempPropGroupData
ELSE
sPropGroupData= GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfitData.eItems[i])
ENDIF
// Set all the flagged props
FOR j = 0 TO NUMBER_OF_PED_PROP_TYPES-1
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[j])
SAFE_SET_PROP(ped, g_sTempCompData[1].ePropPos, g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
SET_SP_PED_COMP_ITEM_NO_LONGER_NEW(COMP_TYPE_PROPS)
// Set any requisites for this item
IF g_iPedComponentNest = 1
REPEAT NUMBER_OF_PED_COMP_TYPES k
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_SP(ped, ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[j], INT_TO_ENUM(PED_COMP_TYPE_ENUM, k))
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k), eRequisite, FALSE)
ENDIF
ENDREPEAT
ENDIF
ENDFOR
//-------COMPONENT ITEM FOR OUTFIT---------------------------------------------
ELIF INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) != COMP_TYPE_PROPS
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) != COMP_TYPE_OUTFIT
// hack for Franklin's balaclava
// it is a hair item that force changes hair
// so we have to save the hair info here, before we equip it
IF ePedModel = PLAYER_ONE
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) = COMP_TYPE_HAIR
AND sOutfitData.eItems[i] = HAIR_P1_MASK
CPRINTLN(DEBUG_PED_COMP, "Doing hair / mask hack for Franklin's balaclava.")
DOES_ITEM_FORCE_HAIR_CHANGE(ePedModel, COMP_TYPE_HAIR, HAIR_P1_MASK, eReturnItem)
ENDIF
//PRINTLN("Setting ", g_sTempCompData[1].iDrawable, ",", g_sTempCompData[1].iTexture, " for ped_component ", GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)))
IF iPaletteOverride = -1
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, GET_PED_PALETTE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i))))
ELSE
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, iPaletteOverride)
ENDIF
SET_SP_PED_COMP_ITEM_NO_LONGER_NEW(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i))
// Set any requisites for this item
IF g_iPedComponentNest = 1
REPEAT NUMBER_OF_PED_COMP_TYPES k
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_SP(ped, ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i], INT_TO_ENUM(PED_COMP_TYPE_ENUM, k))
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k), eRequisite, FALSE)
ENDIF
ENDREPEAT
ENDIF
ENDIF
ENDIF
ELSE
IF i != ENUM_TO_INT(COMP_TYPE_OUTFIT)
AND i != ENUM_TO_INT(COMP_TYPE_PROPS)
// Not required to set anything, but if current part is outfit only, grab the default
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), GET_PED_COMP_ITEM_CURRENT_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)))
IF IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_OUTFIT_ONLY_BIT)
IF i = ENUM_TO_INT(COMP_TYPE_HAIR)
IF ePedModel = PLAYER_ONE
// hack for Franklin's balaclava- hair item that force changes hair
CPRINTLN(DEBUG_PED_COMP, "Doing outfit change hair / mask hack for Franklin's balaclava.")
IF IS_SAFE_TO_RESTORE_SAVED_HAIR(ped, ePedModel, eReturnItem, TRUE)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_HAIR, eReturnItem, FALSE)
ENDIF
ENDIF
ELSE
PED_COMP_OUTFIT_DATA_STRUCT sDefaultOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, OUTFIT_DEFAULT)
SET_PED_COMP_ITEM_CURRENT_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sDefaultOutfitData.eItems[i], FALSE)
ENDIF
ENDIF
ENDIF
ENDIF
ENDFOR
// try to re-equip the stored accessories now
IF bReEquipAccessories = TRUE
PED_COMP_ITEM_DATA_STRUCT mItemDetails
mItemDetails = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_SPECIAL, eSpecialItem)
IF eSpecialItem <> DUMMY_PED_COMP
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, COMP_TYPE_SPECIAL, eSpecialItem, sOutfitData, mItemDetails)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_SPECIAL, eSpecialItem, bMustBeAvailable, iPaletteOverride, bUseGlobalOutfitData, bPreviewing, bReEquipAccessories)
ENDIF
ENDIF
mItemDetails = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_SPECIAL2, eSpecial2Item)
IF eSpecial2Item <> DUMMY_PED_COMP
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, COMP_TYPE_SPECIAL2, eSpecial2Item, sOutfitData, mItemDetails)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_SPECIAL2, eSpecial2Item, bMustBeAvailable, iPaletteOverride, bUseGlobalOutfitData, bPreviewing, bReEquipAccessories)
ENDIF
ENDIF
mItemDetails = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_PROPS, eEyeProp)
IF eEyeProp <> DUMMY_PED_COMP
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, COMP_TYPE_PROPS, eEyeProp, sOutfitData, mItemDetails)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_PROPS, eEyeProp, bMustBeAvailable, iPaletteOverride, bUseGlobalOutfitData, bPreviewing, bReEquipAccessories)
ENDIF
ENDIF
mItemDetails = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_PROPS, eHeadProp)
IF eHeadProp <> DUMMY_PED_COMP
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, COMP_TYPE_PROPS, eHeadProp, sOutfitData, mItemDetails)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_PROPS, eHeadProp, bMustBeAvailable, iPaletteOverride, bUseGlobalOutfitData, bPreviewing, bReEquipAccessories)
ENDIF
ENDIF
mItemDetails = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_PROPS, eEarProp)
IF eEarProp <> DUMMY_PED_COMP
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_OUTFIT(ePedModel, eItem, COMP_TYPE_PROPS, eEarProp, sOutfitData, mItemDetails)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_PROPS, eEarProp, bMustBeAvailable, iPaletteOverride, bUseGlobalOutfitData, bPreviewing, bReEquipAccessories)
ENDIF
ENDIF
ENDIF
// ------PROP GROUP----------------------------------------------------------------
ELIF eType = COMP_TYPE_PROPGROUP
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, eItem)
// Set all the flagged props
FOR j = 0 TO NUMBER_OF_PED_PROP_TYPES-1
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[j])
SAFE_SET_PROP(ped, g_sTempCompData[1].ePropPos, g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
SET_SP_PED_COMP_ITEM_NO_LONGER_NEW(COMP_TYPE_PROPS)
// Set any requisites for this item
IF g_iPedComponentNest = 1
REPEAT NUMBER_OF_PED_COMP_TYPES k
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_SP(ped, ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[j], INT_TO_ENUM(PED_COMP_TYPE_ENUM, k))
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k), eRequisite, FALSE)
ENDIF
ENDREPEAT
ENDIF
ENDFOR
//------- PROP-------------------------------------------------------------------
ELIF eType = COMP_TYPE_PROPS
SAFE_SET_PROP(ped, g_sTempCompData[1].ePropPos, g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
SET_SP_PED_COMP_ITEM_NO_LONGER_NEW(eType)
// Set any requisites for this item
IF g_iPedComponentNest = 1
REPEAT NUMBER_OF_PED_COMP_TYPES k
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_SP(ped, ePedModel, eType, eItem, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k))
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k), eRequisite, FALSE)
ENDIF
ENDREPEAT
ENDIF
// ---------COMPONENT ITEM---------------------------------------------------------------
ELSE
//PRINTLN("***Setting ", g_sTempCompData[1].iDrawable, ",", g_sTempCompData[1].iTexture, " for ped_component ", GET_PED_COMPONENT_FROM_TYPE(eType))
IF iPaletteOverride = -1
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, GET_PED_PALETTE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType)))
ELSE
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, iPaletteOverride)
ENDIF
// Set any requisites for this item
IF g_iPedComponentNest = 1
REPEAT NUMBER_OF_PED_COMP_TYPES k
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_SP(ped, ePedModel, eType, eItem, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k))
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k), eRequisite, FALSE)
ENDIF
ENDREPEAT
ENDIF
IF bPreviewing = FALSE
UPDATE_GOLF_OUTFIT(ePedModel, eType, eItem)
ENDIF
ENDIF
// --------------------HAIR / BEARD / MASKS RESTORE CHECK-------------------------------------
IF g_iPedComponentNest = 1
IF IS_SAFE_TO_RESTORE_SAVED_HAIR(ped, ePedModel, eReturnItem)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_HAIR, eReturnItem, FALSE)
ENDIF
IF IS_SAFE_TO_RESTORE_SAVED_BEARD(ped, ePedModel, eReturnItem)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_BERD, eReturnItem, FALSE)
ENDIF
ENDIF
// item is now current
g_iPedComponentNest--
RETURN TRUE
ENDFUNC
FUNC INT GET_PARACHUTE_TEXTURE_FOR_MP(PED_INDEX ped, INT iBagIndex)
UNUSED_PARAMETER(ped)
// Texture order is based on the ped component assets that get exported.
SWITCH iBagIndex
// Disc
CASE 0 RETURN 0 BREAK // Classic Chute Bag
// mpPilot
CASE 1 RETURN 0 BREAK // USA Chute Bag
CASE 2 RETURN 1 BREAK // Australia Chute Bag
CASE 3 RETURN 2 BREAK // Brazil Chute Bag
CASE 4 RETURN 3 BREAK // Spain Chute Bag
CASE 5 RETURN 4 BREAK // Canada Chute Bag
CASE 6 RETURN 5 BREAK // France Chute Bag
CASE 7 RETURN 6 BREAK // Germany Chute Bag
CASE 8 RETURN 7 BREAK // Japan Chute Bag
CASE 9 RETURN 8 BREAK // Scotland Chute Bag
CASE 10 RETURN 9 BREAK // United Kingdom Chute Bag
CASE 11 RETURN 10 BREAK // Italy Chute Bag
CASE 12 RETURN 11 BREAK // Switzerland Chute Bag
CASE 13 RETURN 12 BREAK // High Flyer Chute Bag
CASE 14 RETURN 13 BREAK // Jamaica Chute Bag
CASE 15 RETURN 14 BREAK // Columbia Chute Bag
CASE 16 RETURN 15 BREAK // Norway Chute Bag
CASE 17 RETURN 16 BREAK // Sweden Chute Bag
CASE 18 RETURN 17 BREAK // Belgium Chute Bag
CASE 19 RETURN 18 BREAK // Mexico Chute Bag
CASE 20 RETURN 19 BREAK // Austria Chute Bag
CASE 21 RETURN 20 BREAK // Russian Federation Chute Bag
CASE 22 RETURN 21 BREAK // Argentina Chute Bag
CASE 23 RETURN 22 BREAK // Turkey Chute Bag
CASE 24 RETURN 23 BREAK // Ireland Chute Bag
CASE 25 RETURN 24 BREAK // Wales Chute Bag
CASE 26 RETURN 25 BREAK // England Chute Bag
// mpLTS
CASE 27 RETURN 0 BREAK // Finland Chute Bag
CASE 28 RETURN 1 BREAK // Denmark Chute Bag
CASE 29 RETURN 2 BREAK // Netherlands Chute Bag
CASE 30 RETURN 3 BREAK // Portugal Chute Bag
CASE 31 RETURN 4 BREAK // China Chute Bag
CASE 32 RETURN 5 BREAK // Croatia Chute Bag
CASE 33 RETURN 6 BREAK // Czech Republic Chute Bag
CASE 34 RETURN 7 BREAK // Hungary Chute Bag
CASE 35 RETURN 8 BREAK // Liechtenstein Chute Bag
CASE 36 RETURN 9 BREAK // Malta Chute Bag
CASE 37 RETURN 10 BREAK // New Zealand Chute Bag
CASE 38 RETURN 11 BREAK // Nigeria Chute Bag
CASE 39 RETURN 12 BREAK // Poland Chute Bag
CASE 40 RETURN 13 BREAK // Puerto Rico Chute Bag
CASE 41 RETURN 14 BREAK // Slovakia Chute Bag
CASE 42 RETURN 15 BREAK // Slovenia Chute Bag
CASE 43 RETURN 16 BREAK // South Africa Chute Bag
CASE 44 RETURN 17 BREAK // South Korea Chute Bag
CASE 45 RETURN 18 BREAK // Palestine Chute Bag
CASE 46 RETURN 19 BREAK // Israel Chute Bag
//CASE 47 RETURN 20 BREAK // Not used - Chile
//CASE 47 RETURN 21 BREAK // Not used - Greece
//CASE 47 RETURN 22 BREAK // Not used - Thailand
//CASE 47 RETURN 23 BREAK // Not used - Romania
//CASE 47 RETURN 24 BREAK // Not used - Egypt
//CASE 47 RETURN 25 BREAK // Not used - Hong Kong
// mpChristmas2
CASE 47 RETURN 0 BREAK // Black Combat Chute Bag
CASE 48 RETURN 1 BREAK // Gray Combat Chute Bag
CASE 49 RETURN 2 BREAK // Charcoal Combat Chute Bag
CASE 50 RETURN 3 BREAK // Tan Combat Chute Bag
CASE 51 RETURN 4 BREAK // Forest Combat Chute Bag
// mpJanuary2016
CASE 52 RETURN 0 BREAK // January 2016 Green
CASE 53 RETURN 1 BREAK // January 2016 Orange
CASE 54 RETURN 1 BREAK // January 2016 Purple
CASE 55 RETURN 2 BREAK // January 2016 Pink
CASE 56 RETURN 3 BREAK // January 2016 Red
CASE 57 RETURN 4 BREAK // January 2016 Blue
CASE 58 RETURN 5 BREAK // January 2016 Gray
CASE 59 RETURN 6 BREAK // January 2016 Brown
CASE 60 RETURN 7 BREAK // January 2016 White
CASE 61 RETURN 8 BREAK // January 2016 Black
// mpChristmas2018
CASE 62 RETURN 0 BREAK // India Chute Bag
CASE 63 RETURN 1 BREAK // Pakistan Chute Bag
// mpTuner
CASE 64 RETURN 0 BREAK // Sprunk
CASE 65 RETURN 1 BREAK // Halloween
CASE 66 RETURN 2 BREAK // eCola
// mpSum2
CASE 67 RETURN 0 BREAK // Junk Energy
ENDSWITCH
CASSERTLN(DEBUG_SHOPS, "GET_PARACHUTE_TEXTURE_FOR_MP - Bag index ", iBagIndex, " missing from lookup")
RETURN 0
ENDFUNC
FUNC INT GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(PED_INDEX ped, INT iBagIndex, PARACHUTE_BAG_ALT eBagAlt)
UNUSED_PARAMETER(ped)
// Drawable index is based on the ped component assets that get exported.
// See //depot/gta5/docs/art/Characters/GTAO/Global/Component_IDs_Male/GTAO_IDs_Male_HAND.xlsx for details.
SWITCH iBagIndex
// Disc
CASE 0 // Classic Chute Bag
SWITCH eBagAlt
CASE PARACHUTE_BAG_ALT01 RETURN 1 BREAK
CASE PARACHUTE_BAG_ALT02 RETURN 2 BREAK
CASE PARACHUTE_BAG_ALT03 RETURN 3 BREAK
CASE PARACHUTE_BAG_ALT04 RETURN 4 BREAK
CASE PARACHUTE_BAG_ALT05 RETURN 5 BREAK
CASE PARACHUTE_BAG_ALT06 RETURN 6 BREAK
CASE PARACHUTE_BAG_ALT07 RETURN 7 BREAK
CASE PARACHUTE_BAG_ALT08 RETURN 8 BREAK
CASE PARACHUTE_BAG_ALT09 RETURN 19 BREAK
CASE PARACHUTE_BAG_ALT10 RETURN 48 BREAK
CASE PARACHUTE_BAG_ALT11 RETURN 62 BREAK
ENDSWITCH
BREAK
// mpPilot
CASE 1 // USA Chute Bag
CASE 2 // Australia Chute Bag
CASE 3 // Brazil Chute Bag
CASE 4 // Spain Chute Bag
CASE 5 // Canada Chute Bag
CASE 6 // France Chute Bag
CASE 7 // Germany Chute Bag
CASE 8 // Japan Chute Bag
CASE 9 // Scotland Chute Bag
CASE 10 // United Kingdom Chute Bag
CASE 11 // Italy Chute Bag
CASE 12 // Switzerland Chute Bag
CASE 13 // High Flyer Chute Bag
CASE 14 // Jamaica Chute Bag
CASE 15 // Columbia Chute Bag
CASE 16 // Norway Chute Bag
CASE 17 // Sweden Chute Bag
CASE 18 // Belgium Chute Bag
CASE 19 // Mexico Chute Bag
CASE 20 // Austria Chute Bag
CASE 21 // Russian Federation Chute Bag
CASE 22 // Argentina Chute Bag
CASE 23 // Turkey Chute Bag
CASE 24 // Ireland Chute Bag
CASE 25 // Wales Chute Bag
CASE 26 // England Chute Bag
SWITCH eBagAlt
CASE PARACHUTE_BAG_ALT01 RETURN 10 BREAK
CASE PARACHUTE_BAG_ALT02 RETURN 11 BREAK
CASE PARACHUTE_BAG_ALT03 RETURN 12 BREAK
CASE PARACHUTE_BAG_ALT04 RETURN 13 BREAK
CASE PARACHUTE_BAG_ALT05 RETURN 14 BREAK
CASE PARACHUTE_BAG_ALT06 RETURN 15 BREAK
CASE PARACHUTE_BAG_ALT07 RETURN 16 BREAK
CASE PARACHUTE_BAG_ALT08 RETURN 17 BREAK
CASE PARACHUTE_BAG_ALT09 RETURN 18 BREAK
CASE PARACHUTE_BAG_ALT10 RETURN 49 BREAK
CASE PARACHUTE_BAG_ALT11 RETURN 64 BREAK
ENDSWITCH
BREAK
// mpLTS
CASE 27 // Finland Chute Bag
CASE 28 // Denmark Chute Bag
CASE 29 // Netherlands Chute Bag
CASE 30 // Portugal Chute Bag
CASE 31 // China Chute Bag
CASE 32 // Croatia Chute Bag
CASE 33 // Czech Republic Chute Bag
CASE 34 // Hungary Chute Bag
CASE 35 // Liechtenstein Chute Bag
CASE 36 // Malta Chute Bag
CASE 37 // New Zealand Chute Bag
CASE 38 // Nigeria Chute Bag
CASE 39 // Poland Chute Bag
CASE 40 // Puerto Rico Chute Bag
CASE 41 // Slovakia Chute Bag
CASE 42 // Slovenia Chute Bag
CASE 43 // South Africa Chute Bag
CASE 44 // South Korea Chute Bag
CASE 45 // Palestine Chute Bag
CASE 46 // Israel Chute Bag
//CASE 47 // Not used - Chile
//CASE 47 // Not used - Greece
//CASE 47 // Not used - Thailand
//CASE 47 // Not used - Romania
//CASE 47 // Not used - Egypt
//CASE 47 // Not used - Hong Kong
SWITCH eBagAlt
CASE PARACHUTE_BAG_ALT01 RETURN 21 BREAK
CASE PARACHUTE_BAG_ALT02 RETURN 22 BREAK
CASE PARACHUTE_BAG_ALT03 RETURN 23 BREAK
CASE PARACHUTE_BAG_ALT04 RETURN 24 BREAK
CASE PARACHUTE_BAG_ALT05 RETURN 25 BREAK
CASE PARACHUTE_BAG_ALT06 RETURN 26 BREAK
CASE PARACHUTE_BAG_ALT07 RETURN 27 BREAK
CASE PARACHUTE_BAG_ALT08 RETURN 28 BREAK
CASE PARACHUTE_BAG_ALT09 RETURN 29 BREAK
CASE PARACHUTE_BAG_ALT10 RETURN 50 BREAK
CASE PARACHUTE_BAG_ALT11 RETURN 65 BREAK
ENDSWITCH
BREAK
// mpChristmas2
CASE 47 // Black Combat Chute Bag
CASE 48 // Gray Combat Chute Bag
CASE 49 // Charcoal Combat Chute Bag
CASE 50 // Tan Combat Chute Bag
CASE 51 // Forest Combat Chute Bag
SWITCH eBagAlt
CASE PARACHUTE_BAG_ALT01 RETURN 31 BREAK
CASE PARACHUTE_BAG_ALT02 RETURN 32 BREAK
CASE PARACHUTE_BAG_ALT03 RETURN 33 BREAK
CASE PARACHUTE_BAG_ALT04 RETURN 34 BREAK
CASE PARACHUTE_BAG_ALT05 RETURN 35 BREAK
CASE PARACHUTE_BAG_ALT06 RETURN 36 BREAK
CASE PARACHUTE_BAG_ALT07 RETURN 37 BREAK
CASE PARACHUTE_BAG_ALT08 RETURN 38 BREAK
CASE PARACHUTE_BAG_ALT09 RETURN 39 BREAK
CASE PARACHUTE_BAG_ALT10 RETURN 51 BREAK
CASE PARACHUTE_BAG_ALT11 RETURN 66 BREAK
ENDSWITCH
BREAK
// mpJanuary2016
CASE 52 // January 2016 Green
CASE 53 // January 2016 Orange
CASE 54 // January 2016 Purple
CASE 55 // January 2016 Pink
CASE 56 // January 2016 Red
CASE 57 // January 2016 Blue
CASE 58 // January 2016 Gray
CASE 59 // January 2016 Brown
CASE 60 // January 2016 White
CASE 61 // January 2016 Black
SWITCH eBagAlt
CASE PARACHUTE_BAG_ALT01 RETURN 52 BREAK
CASE PARACHUTE_BAG_ALT02 RETURN 53 BREAK
CASE PARACHUTE_BAG_ALT03 RETURN 54 BREAK
CASE PARACHUTE_BAG_ALT04 RETURN 55 BREAK
CASE PARACHUTE_BAG_ALT05 RETURN 56 BREAK
CASE PARACHUTE_BAG_ALT06 RETURN 57 BREAK
CASE PARACHUTE_BAG_ALT07 RETURN 58 BREAK
CASE PARACHUTE_BAG_ALT08 RETURN 59 BREAK
CASE PARACHUTE_BAG_ALT09 RETURN 60 BREAK
CASE PARACHUTE_BAG_ALT10 RETURN 61 BREAK
CASE PARACHUTE_BAG_ALT11 RETURN 69 BREAK
ENDSWITCH
BREAK
// mpChristmas2018
CASE 62 // India Chute Bag
CASE 63 // Pakistan Chute Bag
SWITCH eBagAlt
CASE PARACHUTE_BAG_ALT01 RETURN 70 BREAK
CASE PARACHUTE_BAG_ALT02 RETURN 71 BREAK
CASE PARACHUTE_BAG_ALT03 RETURN 72 BREAK
CASE PARACHUTE_BAG_ALT04 RETURN 73 BREAK
CASE PARACHUTE_BAG_ALT05 RETURN 74 BREAK
CASE PARACHUTE_BAG_ALT06 RETURN 75 BREAK
CASE PARACHUTE_BAG_ALT07 RETURN 76 BREAK
CASE PARACHUTE_BAG_ALT08 RETURN 77 BREAK
CASE PARACHUTE_BAG_ALT09 RETURN 78 BREAK
CASE PARACHUTE_BAG_ALT10 RETURN 79 BREAK
CASE PARACHUTE_BAG_ALT11 RETURN 80 BREAK
ENDSWITCH
BREAK
// mpTuner
CASE 64 // Sprunk
CASE 65 // Halloween
CASE 66 // eCola
SWITCH eBagAlt
CASE PARACHUTE_BAG_ALT01 RETURN 89 BREAK
CASE PARACHUTE_BAG_ALT02 RETURN 90 BREAK
CASE PARACHUTE_BAG_ALT03 RETURN 91 BREAK
CASE PARACHUTE_BAG_ALT04 RETURN 92 BREAK
CASE PARACHUTE_BAG_ALT05 RETURN 93 BREAK
CASE PARACHUTE_BAG_ALT06 RETURN 94 BREAK
CASE PARACHUTE_BAG_ALT07 RETURN 95 BREAK
CASE PARACHUTE_BAG_ALT08 RETURN 96 BREAK
CASE PARACHUTE_BAG_ALT09 RETURN 97 BREAK
CASE PARACHUTE_BAG_ALT10 RETURN 98 BREAK
CASE PARACHUTE_BAG_ALT11 RETURN 99 BREAK
ENDSWITCH
BREAK
//mpSum2
CASE 67 // Junk Energy
SWITCH eBagAlt
CASE PARACHUTE_BAG_ALT01 RETURN 100 BREAK
CASE PARACHUTE_BAG_ALT02 RETURN 101 BREAK
CASE PARACHUTE_BAG_ALT03 RETURN 102 BREAK
CASE PARACHUTE_BAG_ALT04 RETURN 103 BREAK
CASE PARACHUTE_BAG_ALT05 RETURN 104 BREAK
CASE PARACHUTE_BAG_ALT06 RETURN 105 BREAK
CASE PARACHUTE_BAG_ALT07 RETURN 106 BREAK
CASE PARACHUTE_BAG_ALT08 RETURN 107 BREAK
CASE PARACHUTE_BAG_ALT09 RETURN 108 BREAK
CASE PARACHUTE_BAG_ALT10 RETURN 109 BREAK
CASE PARACHUTE_BAG_ALT11 RETURN 110 BREAK
ENDSWITCH
BREAK
ENDSWITCH
CASSERTLN(DEBUG_SHOPS, "GET_PARACHUTE_ALT_DRAWABLE_FOR_MP - Bag index ", iBagIndex, " with alt version, ", eBagAlt, " missing from lookup")
RETURN 0
ENDFUNC
FUNC INT GET_PARACHUTE_PALETTE_FOR_MP(PED_INDEX ped, INT iBagIndex)
UNUSED_PARAMETER(ped)
UNUSED_PARAMETER(iBagIndex)
RETURN 0
ENDFUNC
FUNC INT PRIVATE_GetUncachedParachuteDrawableForMp(PED_INDEX ped #IF USE_TU_CHANGES, INT iBagIndex #ENDIF)
INT iUpperVariation = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB)
BOOL bHasArmor
IF GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_SPECIAL2) != 0
bHasArmor = TRUE
ENDIF
MODEL_NAMES eModel = GET_ENTITY_MODEL(ped)
// If player is wearing the body armour then we need to query the accs.
#IF USE_TU_CHANGES
INT iSpecialHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_SPECIAL), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_SPECIAL), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_SPECIAL))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_OVER_JACKET, ENUM_TO_INT(PED_COMP_SPECIAL))
IF eModel = MP_M_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_2, ENUM_TO_INT(PED_COMP_SPECIAL))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_H4_DRAW_1, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_2 /m/ <!-- Ultralight Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_3, ENUM_TO_INT(PED_COMP_SPECIAL))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_H4_DRAW_0, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_3 /m/ <!-- Light Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_4, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_4 /m/ <!-- Mid Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_5, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_5 /m/ <!-- Heavy Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_6, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_6 /m/ <!-- Extreme Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELSE
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_2, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_2 /f/ <!-- Ultralight Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_3, ENUM_TO_INT(PED_COMP_SPECIAL))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_H4_DRAW_0, ENUM_TO_INT(PED_COMP_SPECIAL))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_H4_DRAW_1, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_3 /f/ <!-- Light Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_4, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_4 /f/ <!-- Mid Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_5, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_5 /f/ <!-- Heavy Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialHash, DLC_RESTRICTION_TAG_X17_DRAW_6, ENUM_TO_INT(PED_COMP_SPECIAL))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET+X17_DRAW_6 /f/ <!-- Extreme Strike Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ENDIF
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - special:OVER_JACKET")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
#ENDIF
IF IS_PED_WEARING_DUNGAREES(ped)
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IS_PED_WEARING_DUNGAREES")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ENDIF
// We dont have one of the on-disk drawables to so we need to do the DLC checks!
#IF USE_TU_CHANGES
IF iUpperVariation > 15
INT iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_JBIB), iUpperVariation, GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB))
#IF FEATURE_FIXER
// Specific tag set.
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT01, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT02, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT03, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT04, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT05, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT05)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT06, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT07, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT08, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT09, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT09)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT10, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PARA_ALT11, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
#ENDIF
// Dress needs to force a particular para.
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HIPSTER_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HIPSTER_DRESS")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_MINI_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HIPSTER_DRESS")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - DRESS")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_PILOT_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - PILOT_SUIT")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT09)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_COMBAT_GEAR, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - COMBAT_GEAR")
IF eModel = MP_M_FREEMODE_01
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELSE
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOODED_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HOODED_JACKET")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELSE
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HOODED_JACKET + BIKER_DRAW_5")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_32, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HOODED_JACKET + BIKER_DRAW_32")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_33, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HOODED_JACKET + BIKER_DRAW_33")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_30, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HOODED_JACKET + BIKER_DRAW_30")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HOODED_JACKET")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LUXE_COAT, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_X17_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
INT iLuxeDraw = GET_LUXE_DRAW_INDEX_FROM_LUXE_CLOTH(iDLCJbibHash, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
SWITCH iLuxeDraw
CASE 0 //leather fur jacket
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_DRAW_", iLuxeDraw, ", leather fur jacket")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
BREAK
CASE 2 //wool coat
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_DRAW_", iLuxeDraw, ", wool coat")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT09)
BREAK
DEFAULT
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_COAT [iLuxeDraw: ", iLuxeDraw, "]")
iUpperVariation = GET_DLC_DRAW_TAG(iDLCJbibHash)
CPRINTLN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp - luxe cloth drawable changed to ", iUpperVariation)
BREAK
ENDSWITCH
ELSE
SWITCH iLuxeDraw
CASE 2 //trench coat
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_DRAW_", iLuxeDraw, ", trench coat")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
BREAK
DEFAULT
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_COAT [iLuxeDraw: ", iLuxeDraw, "]")
iUpperVariation = GET_DLC_DRAW_TAG(iDLCJbibHash)
CPRINTLN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp - luxe cloth drawable changed to ", iUpperVariation)
BREAK
ENDSWITCH
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LUXE_BOMB, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LUXE_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
//bomber
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_BOMB (LUXE_DRAW_7) bomber")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
//zipped bomber
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_BOMB (LUXE_DRAW_unknown) zipped bomber")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_GEAR, ENUM_TO_INT(SHOP_PED_COMPONENT))
INT iHeistDraw = GET_HEIST_DRAW_INDEX_FROM_HEIST_GEAR(iDLCJbibHash, ENUM_TO_INT(SHOP_PED_COMPONENT))
SWITCH iHeistDraw
CASE 4
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw)
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
BREAK
CASE 5
IF eModel = MP_M_FREEMODE_01
//
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw, " /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
BREAK
CASE 6
IF eModel = MP_M_FREEMODE_01
//
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw, " /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
BREAK
CASE 7
IF eModel = MP_M_FREEMODE_01
//
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw, " /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
BREAK
CASE 11
IF eModel = MP_M_FREEMODE_01
//
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw, " /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
BREAK
CASE 12
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw, " /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw, " /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
BREAK
CASE 13
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw, " /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw, " /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
BREAK
CASE 14
IF eModel = MP_M_FREEMODE_01
//
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_DRAW_", iHeistDraw)
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
BREAK
DEFAULT
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - HEIST_GEAR [iHeistDraw: ", iHeistDraw, "]")
iUpperVariation = GET_DLC_DRAW_TAG(iDLCJbibHash)
CPRINTLN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp - heist gear drawable changed to ", iUpperVariation)
BREAK
ENDSWITCH
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_XMAS2_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - XMAS2_DRAW_0")
IF eModel = MP_M_FREEMODE_01
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
ELSE
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_0 /m/ <!-- Baggy T-Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_0 /f/ <!-- Tucked T-Shirt -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_1 /m/ <!-- Football Top -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_1 /f/ <!-- Loose Tank -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_2 /m/ <!-- Loose Polo -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_2 /f/ <!-- Baseball Tee -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_3 /m/ <!-- Baseball Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_3 /f/ <!-- Baseball Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_4 /m/ <!-- Windshirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_4 /f/ <!-- Windbreaker -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_5 /m/ <!-- Windbreaker Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_5 /f/ <!-- Sports Hoody -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_6 /m/ <!-- Sport Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT09)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_6 /f/ <!-- Sweater -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_JAN_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_7 /m/ <!-- Varsity (closed) -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_7 /f/ <!-- Crew Varsity Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_JAN_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_AIR_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - AIR_DRAW_3 /m/ <!-- Flight Jacket open -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_8 /m/ <!-- Varsity (open) -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_8 /f/ <!-- Varsity Jacket (close) -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW_DRAW_9 /m/ <!-- Sweater -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_XMAS2_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LUXE_SWEAT, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW_SWEAT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - XMAS2_DRAW_1 or LUXE_SWEAT")
IF eModel = MP_M_FREEMODE_01
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ENDIF
ELSE
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_0 /m/ <!-- Hippy Hoody -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT09)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_0 /m/ <!-- The Body Dress -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_5 /m/ <!-- Cross Check Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_1 /f/ <!-- Rolled Tee -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_2 /m/ <!-- Work Shirt -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_2 /f/ <!-- Work Shirt -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_3 /m/ <!-- Work Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_3 /f/ <!-- Open Check Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_4 /m/ <!-- Chore Coat -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_4 /f/ <!-- Closed Check Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_5 /m/ <!-- Cross Check Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_5 /f/ <!-- Chorse Coat -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_6 /m/ <!-- Open Check Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_6 /f/ <!-- Hippy Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_F_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_6 /f/ <!-- Frill Shirt -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_9 /f/ <!-- Football Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_3 /m/ <!-- Tucked Polo Shirts -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ENDIF
ELSE
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_5 /m/ <!-- Flying Bravo Hoodies -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_5 /f/ <!-- Flying Bravo / Liberty Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_8 /m/ <!-- Open Jacket -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_8 /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_9 /m/ <!-- Continental Closed Jackets -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_9 /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_10, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_10 /m/ <!-- FlyOpen Jacket -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_10 /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_11, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_11 /m/ <!-- Closed Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_11 /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_12, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_12 /m/ <!-- Gold Print Open Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_12 /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_13, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_13 /m/ <!-- Closed Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_13 /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_14, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_14 /m/ <!-- Loose Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_14 /f/ <!-- Loose Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_15 /m/ <!-- Quilted Jacket -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_15 /f/ <!-- Quilted Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_16, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_16 /m/ <!-- Oriental Jacket -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_16 /f/ <!-- Oriental Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_18, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_18 /m/ <!-- Sweater Vests -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_18 /f/ <!-- Sweater Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04) //will clip at sides
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_19 /m/ <!-- Leather Field Jackets -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_20, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_20 /f/ <!-- Leather Field Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_21, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_21 /m/ <!-- long suit jacket -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_21 /f/ <!-- Polo Neck sweater -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_22, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_22 /m/ <!-- Tracksuit top -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_22 /f/ <!-- XXXXXX -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_24, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_24 /m/ <!-- cashmere -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_24 /f/ <!-- Tracksuit Top -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07) //there will be some clipping
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_25, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_25 /f/ <!-- Cashmere Coat -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_AIR_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_0 /m/ <!-- Firesuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_0 /f/ <!-- Firesuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_1 /m/ <!-- Racesuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_1 /f/ <!-- Racesuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_2 /m/ <!-- Stuntman -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_2 /f/ <!-- Stuntman -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_3 /m/ <!-- Tour Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_3 /f/ <!-- Tour Jacket -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_4 /m/ <!-- Retro Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_4 /f/ <!-- Retro Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_5 /m/ <!-- Motocross Jersey -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_5 /f/ <!-- Motocross Jersey -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_6 /m/ <!-- Satin Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_6 /f/ <!-- Satin Jacket -->")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_7 /m/ <!-- Racing Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_7 /f/ <!-- Racing Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_8 /m/ <!-- Stuntman Shiny -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_8 /f/ <!-- Stuntman Shiny -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_9 /m/ <!-- Retro Jacket 2 -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - STUNT_DRAW_9 /f/ <!-- Retro Jacket 2 -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_0 /m/ <!-- Lthr Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_0 /f/ <!-- Lthr Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_1 /m/ <!-- Lthr Vest Defender -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_1 /f/ <!-- Lthr Vest Defender -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_2 /m/ <!-- Lthr Vest Dart -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_2 /f/ <!-- Lthr Vest Dart -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_3 /m/ <!-- Lthr Vest NoCollor -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_3 /f/ <!-- Lthr Vest NoCollor -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_4 /m/ <!-- Lthr Jacket A -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_4 /f/ <!-- Lthr Jacket A -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_5 /m/ <!-- Lthr Jacket A Sleeveless -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_5 /f/ <!-- Lthr Jacket A Sleeveless -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_6 /m/ <!-- Lthr Jacket Jean Style -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_6 /f/ <!-- Lthr Jacket Jean Style -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_7 /m/ <!-- Lthr Baseball Jersey -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_7 /f/ <!-- Lthr Baseball Jersey -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_8 /m/ <!-- Lthr Transform Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_8 /f/ <!-- Lthr Transform Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_9 /m/ <!-- Lthr Jacket B Open -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_9 /f/ <!-- Lthr Jacket B Open -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_10, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_10 /m/ <!-- Puffa Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_10 /f/ <!-- Puffa Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_11, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_11 /m/ <!-- Leather Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_11 /f/ <!-- Leather Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_12, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_12 /m/ <!-- Denim Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_12 /f/ <!-- Denim Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_13, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_13 /m/ <!-- Denim Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_13 /f/ <!-- Denim Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_14, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_14 /m/ <!-- Garbage Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_14 /f/ <!-- TShirt Cropped A -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_15 /m/ <!-- Denim Jacket Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_15 /f/ <!-- TShirt Cropped B -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_16, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_16 /m/ <!-- Denim Vest Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_16 /f/ <!-- TShirt Cropped C -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_17, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_17 /m/ <!-- Leather Jacket A Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_17 /f/ <!-- Shirt Cropped -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_18, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_18 /m/ <!-- Leather Jacket A Sleeveless Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_18 /f/ <!-- Garbage Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_19 /m/ <!-- Lthr Vest Dart Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_19 /f/ <!-- Leather Halter -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_20, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_20 /m/ <!-- Lthr Transform Vest Sleeveless -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_20 /f/ <!-- Denim Jacket Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_21, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_21 /m/ <!-- Tron -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_21 /f/ <!-- Denim Vest Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_22, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_22 /m/ <!-- Lthr Vest Overlay -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_22 /f/ <!-- Lthr Jacket A Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_23, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_23 /m/ <!-- Lthr Vest Defender Overlay -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_23 /f/ <!-- Lthr Jacket A Sleeveless patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_24, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_24 /m/ <!-- Lthr Jacket B Open Overlay -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_24 /f/ <!-- Lthr Vest Dart Patches -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_25, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_14 /m/ <!-- Garbage Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_25 /f/ <!-- Lthr Transform Vest Sleeveless -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_27, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_27 /m/ <!-- Closed Parka -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_28, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_28 /m/ <!-- Open Parka -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_30, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_30 /f/ <!-- Garbage Hoodie -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_32, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_32 /f/ <!-- Closed Parka -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_BIKER_DRAW_33, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - BIKER_DRAW_33 /f/ <!-- Open Parka -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_1 /m/ <!-- Hoodie Longline -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_1 /f/ <!-- Hoodie Longline -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_2 /m/ <!-- Parka Closed -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_2 /f/ <!-- Parka Closed -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_3 /m/ <!-- Parka Open -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_3 /f/ <!-- Parka Open -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_4 /m/ <!-- Crewneck Sweater -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_4 /f/ <!-- Crewneck Sweater -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_5 /m/ <!-- Puffa Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_5 /f/ <!-- Puffa Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_GUN_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - GUN_DRAW_19 /f/ <!-- Sleeveless Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_GUN_DRAW_20, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - GUN_DRAW_20 /f/ <!-- Combat Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_GUN_DRAW_23, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - GUN_DRAW_23 /f/ <!-- Sleeveless Puffer -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_GUN_DRAW_24, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - GUN_DRAW_24 /f/ <!-- Puffer -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SMUG_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - SMUG_DRAW_2 /f/ <!-- Shortsleeve Shirt -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_AIR_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - AIR_DRAW_2 /f/ <!-- Flight Jacket -->")
iUpperVariation = 7
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_X17_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - X17_DRAW_2 /m/ <!-- Scuba Gear -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - X17_DRAW_2 /f/ <!-- Scuba Gear -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_X17_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - X17_DRAW_3 /m/ <!-- Tactical Blouson -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - X17_DRAW_3 /f/ <!-- Tactical Blouson Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_X17_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - X17_DRAW_6 /f/ <!-- Tactical Sleeveless Vest -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_X17_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - X17_DRAW_7 /m/ <!-- Tactical Midlength -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - X17_DRAW_7 /f/ <!-- Tactical Midlength Jacket -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_ASSAULT_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ASSAULT_DRAW_0 /m/ <!-- Classic Racing Suit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ASSAULT_DRAW_0 /f/ <!-- Classic Racing Suit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LUXE_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_DRAW_4 /m/ <!-- Crew Tee Untucked -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE_DRAW_4 /f/ <!-- Crew Tee Untucked -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_ARENA_DRAW_14, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 + ARENA_DRAW_14 /m/ <!-- RSRangers Outfit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 + ARENA_DRAW_14 /f/ <!-- RSRangers Outfit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELSE
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /m/ <!-- Morphsuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /f/ <!-- Morphsuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_ARENA_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ARENA_DRAW_3 /m/ <!-- Dystopia Wasteland -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ARENA_DRAW_3 /f/ <!-- Dystopia Wasteland -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_ARENA_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ARENA_DRAW_4 /m/ <!-- Dystopian Leather -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ARENA_DRAW_4 /f/ <!-- Dystopian Leather -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /m/ <!-- Alien Body -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /f/ <!-- Alien Body -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /m/ <!-- Retro Space Suit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /f/ <!-- Retro Space Suit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_5 /m/ <!-- Garbage Hoodie Hood-Down -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - APART_DRAW_5 /f/ <!-- Garbage Hoodie Hood-Down -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LUXE2_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE2_DRAW_2 /m/ <!-- Sweater B -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE2_DRAW_2 /f/ <!-- Sweater B -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LOW2_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_9 /m/ <!-- Sports Jersey Tee -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LOW2_DRAW_9 /f/ <!-- Sports Jersey Tee -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /m/ <!-- Modern Spacesuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /f/ <!-- Modern Spacesuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_ARENA_DRAW_12, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ARENA_DRAW_12 /m/ <!-- Racing Firsuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ARENA_DRAW_12 /f/ <!-- Racing Firsuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /m/ <!-- Pogo Outfit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /f/ <!-- Pogo Outfit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /m/ <!-- RSRangers Outfit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /f/ <!-- RSRangers Outfit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_IE_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /m/ <!-- SciFi Spacesuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - IE_DRAW_15 /f/ <!-- SciFi Spacesuit -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_LUXE2_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE2_DRAW_2 /m/ <!-- Sweater B -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - LUXE2_DRAW_2 /f/ <!-- Sweater B -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_ARENA_DRAW_17, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ARENA_DRAW_17 /m/ <!-- Dystopia Military -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT11)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - ARENA_DRAW_17 /f/ <!-- Dystopia Military -->")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT10)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_VEST_SHIRT, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND eModel = MP_F_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - VEST_SHIRT")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_TAILS_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND eModel = MP_F_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - TAILS_JACKET")
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SMOKING_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eModel = MP_M_FREEMODE_01
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - SMOKING_JACKET /m/")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - SMOKING_JACKET /f/")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SILK_PYJAMAS, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SILK_ROBE, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SANTA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CDEBUG1LN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp ", GET_MODEL_NAME_FOR_DEBUG(eModel), ", iBagIndex:", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - SILK_PYJAMAS or SILK_ROBE or SANTA_SUIT")
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
INT iPrevUpperVariation = iUpperVariation
iUpperVariation = GET_DLC_DRAW_TAG(iDLCJbibHash)
CPRINTLN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp - DLC drawable changed from ", iPrevUpperVariation, " to ", iUpperVariation, " for jbib \"", iDLCJbibHash, "\"")
ENDIF
ENDIF
#ENDIF
// Male
IF eModel = MP_M_FREEMODE_01
CPRINTLN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp - iUpperVariation ", iUpperVariation, ", iBagIndex ", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - /m/")
SWITCH iUpperVariation
CASE 0
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 1
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 2
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
BREAK
CASE 3
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
BREAK
CASE 4
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
BREAK
CASE 5
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 6
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
BREAK
CASE 7
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
BREAK
CASE 8
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 9
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 10
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
BREAK
CASE 11
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
BREAK
CASE 12
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 13
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ENDIF
BREAK
CASE 14
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ENDIF
BREAK
CASE 15
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT05)
ENDIF
BREAK
ENDSWITCH
// Female
ELSE
CPRINTLN(DEBUG_PED_COMP, "PRIVATE_GetUncachedParachuteDrawableForMp - iUpperVariation ", iUpperVariation, ", iBagIndex ", iBagIndex, PICK_STRING(bHasArmor, ", bHasArmor", ""), " - /f/")
SWITCH iUpperVariation
CASE 0
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 1
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
BREAK
CASE 2
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT03)
ENDIF
BREAK
CASE 3
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT06)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT05)
ENDIF
BREAK
CASE 4
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 5
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 6
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
BREAK
CASE 7
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
BREAK
CASE 8
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
BREAK
CASE 9
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
BREAK
CASE 10
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT07)
ENDIF
BREAK
CASE 11
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 12
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 13
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
CASE 14
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT08)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT04)
ENDIF
BREAK
CASE 15
IF bHasArmor
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT02)
ELSE
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01)
ENDIF
BREAK
ENDSWITCH
ENDIF
#IF USE_TU_CHANGES
RETURN GET_PARACHUTE_ALT_DRAWABLE_FOR_MP(ped, iBagIndex, PARACHUTE_BAG_ALT01) // default to 1 otherwise we will keep taking a parachute off.
#ENDIF
RETURN 0
ENDFUNC
PROC RESET_CACHED_PARACHUTE_DRAWABLE_FOR_MP_VARIABLES()
CPRINTLN(DEBUG_PED_COMP, "RESET_CACHED_PARACHUTE_DRAWABLE_FOR_MP_VARIABLES called from ", GET_THIS_SCRIPT_NAME())
g_bCachedArmourForParachuteDrawable = FALSE
g_iCachedBagIndexForParachuteDrawable = -1
g_iCachedSpecHashForParachuteDrawable = -1
g_iCachedJbibHashForParachuteDrawable = -1
g_iCachedLegsHashForParachuteDrawable = -1
g_iCachedParachuteDrawableForMP = -1
ENDPROC
FUNC INT GET_PARACHUTE_DRAWABLE_FOR_MP(PED_INDEX ped #IF USE_TU_CHANGES, INT iBagIndex #ENDIF)
INT iSpecDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_SPECIAL)
INT iJbibDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB)
INT iLegsDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_LEG)
BOOL bHasArmor = (GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_SPECIAL2) != 0)
INT iSpecHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_SPECIAL), iSpecDraw, GET_PED_TEXTURE_VARIATION(ped, PED_COMP_SPECIAL))
INT iJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_JBIB), iJbibDraw, GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB))
INT iLegsHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_LEG), iLegsDraw, GET_PED_TEXTURE_VARIATION(ped, PED_COMP_LEG))
IF bHasArmor != g_bCachedArmourForParachuteDrawable
OR iBagIndex != g_iCachedBagIndexForParachuteDrawable
OR iSpecHash != g_iCachedSpecHashForParachuteDrawable
OR iJbibHash != g_iCachedJbibHashForParachuteDrawable
OR iLegsHash != g_iCachedLegsHashForParachuteDrawable
OR iSpecDraw != g_iCachedSpecDrawForParachuteDrawable
OR iJbibDraw != g_iCachedJbibDrawForParachuteDrawable
OR iLegsDraw != g_iCachedLegsDrawForParachuteDrawable
#IF IS_DEBUG_BUILD
BOOL bPrevHasArmor = g_bCachedArmourForParachuteDrawable
INT iPrevBagIndex = g_iCachedBagIndexForParachuteDrawable
INT iPrevSpecHash = g_iCachedSpecHashForParachuteDrawable
INT iPrevJbibHash = g_iCachedJbibHashForParachuteDrawable
INT iPrevLegsHash = g_iCachedLegsHashForParachuteDrawable
INT iPrevSpecDraw = g_iCachedSpecDrawForParachuteDrawable
INT iPrevJbibDraw = g_iCachedJbibDrawForParachuteDrawable
INT iPrevLegsDraw = g_iCachedLegsDrawForParachuteDrawable
INT iPrevChuteDraw = g_iCachedParachuteDrawableForMP
#ENDIF
g_bCachedArmourForParachuteDrawable = bHasArmor
g_iCachedBagIndexForParachuteDrawable = iBagIndex
g_iCachedSpecHashForParachuteDrawable = iSpecHash
g_iCachedJbibHashForParachuteDrawable = iJbibHash
g_iCachedLegsHashForParachuteDrawable = iLegsHash
g_iCachedSpecDrawForParachuteDrawable = iSpecDraw
g_iCachedJbibDrawForParachuteDrawable = iJbibDraw
g_iCachedLegsDrawForParachuteDrawable = iLegsDraw
g_iCachedParachuteDrawableForMP = PRIVATE_GetUncachedParachuteDrawableForMp(ped #IF USE_TU_CHANGES, iBagIndex #ENDIF)
#IF IS_DEBUG_BUILD
IF bPrevHasArmor != g_bCachedArmourForParachuteDrawable
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- bPrevHasArmor:", bPrevHasArmor, ", bHasArmor:", g_bCachedArmourForParachuteDrawable)
ENDIF
IF iPrevBagIndex != g_iCachedBagIndexForParachuteDrawable
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- iPrevBagIndex:", iPrevBagIndex, ", iBagIndex:", g_iCachedBagIndexForParachuteDrawable)
ENDIF
IF iPrevSpecHash != g_iCachedSpecHashForParachuteDrawable
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- iPrevSpecHash:", iPrevSpecHash, ", iSpecHash:", g_iCachedSpecHashForParachuteDrawable)
ENDIF
IF iPrevJbibHash != g_iCachedJbibHashForParachuteDrawable
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- iPrevJbibHash:", iPrevJbibHash, ", iJbibHash:", g_iCachedJbibHashForParachuteDrawable)
ENDIF
IF iPrevLegsHash != g_iCachedLegsHashForParachuteDrawable
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- iPrevLegsHash:", iPrevLegsHash, ", iLegsHash:", g_iCachedLegsHashForParachuteDrawable)
ENDIF
IF iPrevSpecDraw != g_iCachedSpecDrawForParachuteDrawable
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- iPrevSpecDraw:", iPrevSpecDraw, ", iSpecDraw:", g_iCachedSpecDrawForParachuteDrawable)
ENDIF
IF iPrevJbibDraw != g_iCachedJbibDrawForParachuteDrawable
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- iPrevJbibDraw:", iPrevJbibDraw, ", iJbibDraw:", g_iCachedJbibDrawForParachuteDrawable)
ENDIF
IF iPrevLegsDraw != g_iCachedLegsDrawForParachuteDrawable
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- iPrevLegsDraw:", iPrevLegsDraw, ", iLegsDraw:", g_iCachedLegsDrawForParachuteDrawable)
ENDIF
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP -- iPrevChuteDraw:", iPrevChuteDraw, ", iParachuteDrawable:", g_iCachedParachuteDrawableForMP)
#ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, "GET_PARACHUTE_DRAWABLE_FOR_MP - g_iCachedParachuteDrawableForMP:", g_iCachedParachuteDrawableForMP)
RETURN g_iCachedParachuteDrawableForMP
ENDFUNC
FUNC MODEL_NAMES GET_MP_PARACHUTE_BAG_MODEL(INT iBagIndex)
IF iBagIndex > 66
RETURN reh_p_para_bag_reh_s_01a
ELIF iBagIndex > 63
RETURN INT_TO_ENUM(MODEL_NAMES, HASH("p_para_bag_tr_s_01a"))
ELIF iBagIndex > 61
RETURN INT_TO_ENUM(MODEL_NAMES, HASH("vw_p_para_bag_vine_s"))
ELIF iBagIndex > 51
RETURN lts_P_para_bag_Pilot2_S
ELIF iBagIndex > 46
RETURN P_para_bag_Xmas_S
ELIF iBagIndex > 26
RETURN lts_P_para_bag_LTS_S
ELIF iBagIndex > 0
RETURN lts_P_para_bag_Pilot2_S
ENDIF
RETURN P_Parachute_S
ENDFUNC
FUNC MODEL_NAMES GET_CURRENT_STORED_PARACHUTE_MODEL()
INT iParachutePack = GET_MP_INT_CHARACTER_STAT(MP_STAT_PARACHUTE_CURRENT_PACK)
MODEL_NAMES eParachuteBagModel = GET_MP_PARACHUTE_BAG_MODEL(iParachutePack)
RETURN eParachuteBagModel
ENDFUNC
PROC SET_MP_PARACHUTE_BAG_OVERRIDE(PLAYER_INDEX playerID, INT iBagIndex)
// Index range can be found in GET_GUNCLUB_WEAPON_TINT_DATA
MODEL_NAMES eParachuteBagModel = GET_MP_PARACHUTE_BAG_MODEL(iBagIndex)
IF eParachuteBagModel != P_Parachute_S
SET_PLAYER_PARACHUTE_PACK_MODEL_OVERRIDE(playerID, ENUM_TO_INT(eParachuteBagModel))
ELSE
CLEAR_PLAYER_PARACHUTE_PACK_MODEL_OVERRIDE(playerID)
ENDIF
ENDPROC
FUNC INT GB_GET_ORGANISATION_PARACHUTE_TINT(INT bossStyle)
// g_sMagnateOutfitStruct.iBossStyle > ENUM_TO_INT(GB_BOSS_STYLE_NONE)
GB_MAGNATE_OUTFIT_BOSS_STYLE bossStyleenum = INT_TO_ENUM(GB_MAGNATE_OUTFIT_BOSS_STYLE, bossStyle)
PRINTLN("GB_GET_ORGANISATION_PARACHUTE_TINT", GB_OUTFITS_GET_BOSS_STYLE_STRING_FOR_HELP(bossStyleenum))
PRINTLN("GB_GET_ORGANISATION_PARACHUTE_TINT bossStyle = ", bossStyle)
SWITCH bossStyleenum
CASE GB_BOSS_STYLE_DRUG_BARON RETURN 9 BREAK // Desert Chute
CASE GB_BOSS_STYLE_EL_JEFE RETURN 9 BREAK // Desert Chute
CASE GB_BOSS_STYLE_MEDIA_MOGUL RETURN 3 BREAK // Widowmaker Chute
CASE GB_BOSS_STYLE_ENTREPRENEUR RETURN 3 BREAK // Widowmaker Chute
CASE GB_BOSS_STYLE_ARMS_DEALER RETURN 8 BREAK // Air Force Chute
CASE GB_BOSS_STYLE_INVESTOR RETURN 8 BREAK // Air Force Chute
CASE GB_BOSS_STYLE_MOB RETURN 11 BREAK // High Altitude Chute
CASE GB_BOSS_STYLE_KINGPIN RETURN 11 BREAK // High Altitude Chute
CASE GB_BOSS_STYLE_OLIGARCH RETURN 6 BREAK // BLACK Chute
CASE GB_BOSS_STYLE_OIL_MAGNATE RETURN 6 BREAK // BLACK Chute
CASE GB_BOSS_STYLE_SHIPPING RETURN 10 BREAK // Shadow Chute
CASE GB_BOSS_STYLE_SYNDICATE RETURN 10 BREAK // Shadow Chute
ENDSWITCH
RETURN 0
ENDFUNC
PROC EQUIP_STORED_MP_PARACHUTE(PLAYER_INDEX playerID, INT iParachuteTint = -1, INT iBagIndex = -1)
IF NETWORK_IS_GAME_IN_PROGRESS()
RESET_CACHED_PARACHUTE_DRAWABLE_FOR_MP_VARIABLES()
PRINTLN("EQUIP_STORED_MP_PARACHUTE(", GET_PLAYER_NAME(playerID), ", iParachuteTint:", iParachuteTint, ", iBagIndex:", iBagIndex, ") from ", GET_THIS_SCRIPT_NAME())
IF iBagIndex = -1
iBagIndex = GET_MP_INT_CHARACTER_STAT(MP_STAT_PARACHUTE_CURRENT_PACK)
PRINTLN(" EQUIP_STORED_MP_PARACHUTE new iBagIndex:", iBagIndex)
ENDIF
SET_PLAYER_PARACHUTE_VARIATION_OVERRIDE(playerID, PED_COMP_HAND, GET_PARACHUTE_DRAWABLE_FOR_MP(GET_PLAYER_PED(playerID), iBagIndex), GET_PARACHUTE_TEXTURE_FOR_MP(GET_PLAYER_PED(playerID), iBagIndex))
SET_PLAYER_PARACHUTE_PACK_TINT_INDEX(playerID, GET_PARACHUTE_PALETTE_FOR_MP(GET_PLAYER_PED(playerID), iBagIndex))
SET_PED_COMPONENT_VARIATION(GET_PLAYER_PED(playerID), PED_COMP_HAND, GET_PARACHUTE_DRAWABLE_FOR_MP(GET_PLAYER_PED(playerID), iBagIndex), GET_PARACHUTE_TEXTURE_FOR_MP(GET_PLAYER_PED(playerID), iBagIndex), GET_PARACHUTE_PALETTE_FOR_MP(GET_PLAYER_PED(playerID), iBagIndex))
IF iParachuteTint = -1
iParachuteTint = GET_MP_INT_CHARACTER_STAT(MP_STAT_PARACHUTE_CURRENT_TINT)
PRINTLN(" EQUIP_STORED_MP_PARACHUTE new iParachuteTint:", iParachuteTint)
ENDIF
IF GB_IS_LOCAL_PLAYER_MEMBER_OF_A_GANG(TRUE)
AND GB_OUTFITS_IS_PLAYER_WEARING_GANG_OUTFIT(playerID)
PRINTLN(" [KW WEAPONS]EQUIP_STORED_MP_PARACHUTE Got equipped GADGETTYPE_PARACHUTE is member of gang. Equiping gang parachute tint")
SET_PLAYER_PARACHUTE_CANOPY(playerID,GB_GET_ORGANISATION_PARACHUTE_TINT(g_sMagnateOutfitStruct.iBossStyle))
ELSE
SET_PLAYER_PARACHUTE_CANOPY(playerID, iParachuteTint)
ENDIF
IF IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetEighteen, ciOptionsBS18_ENABLE_TEAM_COLOUR_PARACHUTES)
SET_PLAYER_PARACHUTE_CANOPY(playerID, g_i_Mission_team, PARACHUTE_CANOPY_TEAM_COLOUR)
ENDIF
SET_MP_PARACHUTE_BAG_OVERRIDE(playerID, iBagIndex)
SET_PED_RESET_FLAG(GET_PLAYER_PED(playerID), PRF_DisableTakeOffParachutePack, TRUE)
ENDIF
ENDPROC
PROC UPDATE_STORED_MP_PARACHUTE(INT iBagIndex, BOOL bUpdatePlayerDrawable)
IF NETWORK_IS_GAME_IN_PROGRESS()
RESET_CACHED_PARACHUTE_DRAWABLE_FOR_MP_VARIABLES()
PRINTLN("UPDATE_STORED_MP_PARACHUTE - Updating stored parachute bag to ", iBagIndex, " for script ", GET_THIS_SCRIPT_NAME())
SET_MP_INT_CHARACTER_STAT(MP_STAT_PARACHUTE_CURRENT_PACK, iBagIndex)
SET_PLAYER_PARACHUTE_VARIATION_OVERRIDE(PLAYER_ID(), PED_COMP_HAND, GET_PARACHUTE_DRAWABLE_FOR_MP(PLAYER_PED_ID(), iBagIndex), GET_PARACHUTE_TEXTURE_FOR_MP(PLAYER_PED_ID(), iBagIndex))
SET_MP_PARACHUTE_BAG_OVERRIDE(PLAYER_ID(), iBagIndex)
SET_PLAYER_PARACHUTE_PACK_TINT_INDEX(PLAYER_ID(), GET_PARACHUTE_PALETTE_FOR_MP(PLAYER_PED_ID(), iBagIndex))
IF bUpdatePlayerDrawable
AND NOT IS_PED_INJURED(PLAYER_PED_ID())
AND GET_PED_DRAWABLE_VARIATION(PLAYER_PED_ID(), PED_COMP_HAND) != 0
EQUIP_STORED_MP_PARACHUTE(PLAYER_ID())
ENDIF
ENDIF
ENDPROC
/// PURPOSE: If you are changing the players hairdo it must go through this proc.
PROC SET_STORED_FM_HAIRDO(PED_COMP_NAME_ENUM eHair)
#IF IS_DEBUG_BUILD
DEBUG_PRINTCALLSTACK()
#ENDIF
CPRINTLN(DEBUG_PED_COMP, "SET_STORED_FM_HAIRDO - Hairdo getting set to ped comp ", eHair, " by script '", GET_THIS_SCRIPT_NAME(), "', slot=", g_iPedComponentSlot)
SET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO, ENUM_TO_INT(eHair), g_iPedComponentSlot)
SET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO_SA, ENUM_TO_INT(eHair), g_iPedComponentSlot)
SET_MP_BOOL_CHARACTER_STAT(MP_STAT_USING_HAIR_SA_STAT, TRUE)
ENDPROC
/// PURPOSE:IS_SAFE_TO_RESTORE_SAVED_HAIR_MP
/// Checks if the ped's hair is currently forced changed by an item
/// If so, checks if it is now safe to restore the saved hair
FUNC BOOL IS_SAFE_TO_RESTORE_SAVED_HAIR_MP(PED_INDEX mPed, PED_COMP_NAME_ENUM &eHairToRestore)
#IF USE_TU_CHANGES
eHairToRestore = GET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_HAIR) // store current hair value as default incase the below fails (see 1690020)
#ENDIF
// check if we are now safe to restore the ped's stored hair
IF INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_ITEM, g_iPedComponentSlot)) <> DUMMY_PED_COMP
AND HAS_IMPORTANT_STATS_LOADED()
#IF USE_TU_CHANGES
IF GET_CURRENT_HUD_STATE() = HUD_STATE_SELECT_CHARACTER_FM
PRINTLN("IS_SAFE_TO_RESTORE_SAVED_HAIR_MP - Allow in character selection screen")
RETURN TRUE
ENDIF
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_ITEM, g_iPedComponentSlot) = 0
AND GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_TYPE, g_iPedComponentSlot) = 0
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_USING_HAIR_SA_STAT, g_iPedComponentSlot)
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO_SA, g_iPedComponentSlot) = 0
PRINTLN("IS_SAFE_TO_RESTORE_SAVED_HAIR_MP - GET_MP_INT_CHARACTER_STAT not working!")
SCRIPT_ASSERT("IS_SAFE_TO_RESTORE_SAVED_HAIR_MP - Bald 1 ! Add a bug and send logs to Kenneth R.")
RETURN FALSE
ENDIF
ELSE
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO, g_iPedComponentSlot) = 0
PRINTLN("IS_SAFE_TO_RESTORE_SAVED_HAIR_MP - GET_MP_INT_CHARACTER_STAT not working!")
SCRIPT_ASSERT("IS_SAFE_TO_RESTORE_SAVED_HAIR_MP - Bald 2! Add a bug and send logs to Kenneth R.")
RETURN FALSE
ENDIF
ENDIF
ENDIF
#ENDIF
CPRINTLN(DEBUG_PED_COMP, "Forced hair item = ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_ITEM, g_iPedComponentSlot))
// player's hair is currently force changed
PED_COMP_NAME_ENUM eItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_ITEM, g_iPedComponentSlot))
PED_COMP_TYPE_ENUM eType = INT_TO_ENUM(PED_COMP_TYPE_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_TYPE, g_iPedComponentSlot))
IF NOT IS_PED_COMP_ITEM_CURRENT_MP(mPed, eType, eItem)
// the item that forced the change is no longer equipped, restore hair + reset values
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_USING_HAIR_SA_STAT, g_iPedComponentSlot)
eHairToRestore = INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO_SA, g_iPedComponentSlot))
ELSE
eHairToRestore = INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO, g_iPedComponentSlot))
ENDIF
SET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_ITEM, ENUM_TO_INT(DUMMY_PED_COMP), g_iPedComponentSlot)
SET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_TYPE, ENUM_TO_INT(COMP_TYPE_HAIR), g_iPedComponentSlot)
CPRINTLN(DEBUG_PED_COMP, "Hair for FM can now safely be reset to ", eHairToRestore)
RETURN TRUE
ELSE
// CPRINTLN(DEBUG_PED_COMP, "Force change item still equipped. ", GET_PED_COMP_TYPE_STRING(INT_TO_ENUM(PED_COMP_TYPE_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_TYPE, g_iPedComponentSlot))), " item: ", INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_FORCED_HAIR_ITEM, g_iPedComponentSlot)))
ENDIF
ELSE
// CPRINTLN(DEBUG_PED_COMP, "Hair for ", CHAR_MULTIPLAYER, " isn't force changed at the moment.")
ENDIF
RETURN FALSE
ENDFUNC
#IF USE_TU_CHANGES
FUNC BOOL SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT(PED_INDEX pedID, BOOL bDirectorMode = FALSE)
IF NOT IS_PED_INJURED(pedID)
// Drawable info obtained from GET_TORSO_DECAL_TATTOO_MP
INT iDrawable, iTexture
IF GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB)
iTexture = GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_JBIB)
SWITCH iDrawable
CASE 0
SWITCH iTexture
CASE 1
CASE 3
CASE 5
CASE 7
CASE 4
CASE 8
CASE 11
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 1
SWITCH iTexture
CASE 3
CASE 5
CASE 6
CASE 8
CASE 4
CASE 14
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
CASE 1 //Los Santos Belle V Neck
CASE 7 //Rockstar V Neck
CASE 12 //Red Skull V Neck
TATTOO_NAME_ENUM eTorsoDecal
eTorsoDecal = GET_TORSO_DECAL_TATTOO_MP(MP_M_FREEMODE_01, COMP_TYPE_JBIB, GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB))
IF (iTexture = 1 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_LSBELLE)
OR (iTexture = 7 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_ROCKSTAR)
OR (iTexture = 12 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_REDSKULL)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ", ", eTorsoDecal, ") - v-neck")
RETURN TRUE
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ", ", eTorsoDecal, ") - v-neck")
BREAK
ENDSWITCH
BREAK
CASE 2
SWITCH iTexture
CASE 9
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 5
IF NOT bDirectorMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew tattoo A!!")
RETURN NOT FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B) //Crew Emblem Small
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew tattoo B!!")
RETURN NOT FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew tattoo C!!")
RETURN NOT FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew tattoo D!!")
RETURN NOT FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew tattoo E!!")
RETURN NOT FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F)
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew tattoo F")
ELIF GB_IS_PLAYER_MEMBER_OF_A_BIKER_GANG(PLAYER_ID())
AND GlobalplayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].sMagnateGangBossData.sGangOutfitData.iEmblemToDisplay != 0
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew emblem ", GlobalplayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].sMagnateGangBossData.sGangOutfitData.iEmblemToDisplay, "!!")
RETURN NOT FALSE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew tattoo - no crew tattoo")
ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") blocked for crew tattoo - bDirectorMode")
ENDIF
BREAK
DEFAULT
IF iDrawable > 15
// Does the DLC JBIB with a tattoo decl?
PED_COMP_NAME_ENUM eItem
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB)
IF eItem >= JBIB_FMM_DLC
INT iDLCNameHash
iDLCNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_M_FREEMODE_01, eItem, COMP_TYPE_JBIB, 3)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL_NO_SAVE, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_COMBAT_TOP, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_HEIST_DRAW_12, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") hash:", iDLCNameHash)
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") hash:", iDLCNameHash)
ENDIF
ENDIF
ENDIF
BREAK
ENDSWITCH
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL)
iTexture = GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_SPECIAL)
SWITCH iDrawable
CASE 0
SWITCH iTexture
CASE 1
CASE 3
CASE 5
CASE 7
CASE 4
CASE 8
CASE 11
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 1
SWITCH iTexture
CASE 3
CASE 5
CASE 6
CASE 8
CASE 4
CASE 14
CASE 1
CASE 7
CASE 12
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 2
SWITCH iTexture
CASE 1
CASE 3
CASE 5
CASE 7
CASE 4
CASE 8
CASE 11
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 14
SWITCH iTexture
CASE 3
CASE 5
CASE 6
CASE 8
CASE 4
CASE 14
CASE 1
CASE 7
CASE 12
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
DEFAULT
IF iDrawable > 15
// Does the DLC SPECIAL with a tattoo decl?
PED_COMP_NAME_ENUM eItem
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_SPECIAL)
IF eItem >= SPECIAL_FMM_DLC
INT iDLCNameHash
iDLCNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_M_FREEMODE_01, eItem, COMP_TYPE_SPECIAL, 3)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL_NO_SAVE, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_COMBAT_TOP, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ") hash:", iDLCNameHash)
ENDIF
ENDIF
ENDIF
BREAK
ENDSWITCH
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB), ", ", GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_JBIB), ") SPECIAL (", GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL), ", ", GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_SPECIAL), ")")
ELIF GET_ENTITY_MODEL(pedID) = MP_F_FREEMODE_01
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB)
iTexture = GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_JBIB)
SWITCH iDrawable
CASE 0
SWITCH iTexture
CASE 1 //Salamanders T-shirt [T-SHIRTS 9/13]
CASE 2 //The Feud T-Shirt [T-SHIRTS 6/13]
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") - t-shirt")
RETURN TRUE
BREAK
CASE 7 //Los Santos Belle V Neck
CASE 4 //Rockstar V Neck
CASE 9 //Red Skull V Neck
TATTOO_NAME_ENUM eTorsoDecal
eTorsoDecal = GET_TORSO_DECAL_TATTOO_MP(MP_F_FREEMODE_01, COMP_TYPE_JBIB, GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB))
IF (iTexture = 7 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_LSBELLE)
OR (iTexture = 4 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_ROCKSTAR)
OR (iTexture = 9 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_REDSKULL)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ", ", eTorsoDecal, ") - v-neck")
RETURN TRUE
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ", ", eTorsoDecal, ") - v-neck")
BREAK
ENDSWITCH
BREAK
CASE 2
SWITCH iTexture
CASE 0
CASE 1
CASE 2
CASE 3
CASE 4
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 3
SWITCH iTexture
CASE 14 //Pounders Hoodie
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 11
SWITCH iTexture
CASE 10
CASE 11
CASE 15
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
DEFAULT
IF iDrawable > 15
// Does the DLC JBIB with a tattoo decl?
PED_COMP_NAME_ENUM eItem
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB)
IF eItem >= JBIB_FMF_DLC
INT iDLCNameHash
iDLCNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_F_FREEMODE_01, eItem, COMP_TYPE_JBIB, 4)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL_NO_SAVE, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_COMBAT_TOP, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_HEIST_DRAW_13, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture,
") TAT_DECL: ", GET_STRING_FROM_BOOL(DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL, ENUM_TO_INT(SHOP_PED_COMPONENT))),
", MULTI_DECAL: ", GET_STRING_FROM_BOOL(DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))),
", TAT_DECL_NO_SAVE, : ", GET_STRING_FROM_BOOL(DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL_NO_SAVE, ENUM_TO_INT(SHOP_PED_COMPONENT))),
", COMBAT_TOP, : ", GET_STRING_FROM_BOOL(DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_COMBAT_TOP, ENUM_TO_INT(SHOP_PED_COMPONENT))))
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ") hash:", iDLCNameHash)
ENDIF
ENDIF
ENDIF
BREAK
ENDSWITCH
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL)
iTexture = GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_SPECIAL)
SWITCH iDrawable
CASE 0 //Wearing Denim Jacket + T-shirt
SWITCH iTexture
CASE 1 //Salamanders T-shirt [T-SHIRTS 9/13]
CASE 2 //The Feud T-Shirt [T-SHIRTS 6/13]
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ") - t-shirt")
RETURN TRUE
BREAK
CASE 7 //Los Santos Belle V Neck
CASE 4 //Rockstar V Neck
CASE 9 //Red Skull V Neck
TATTOO_NAME_ENUM eTorsoDecal
eTorsoDecal = GET_TORSO_DECAL_TATTOO_MP(MP_F_FREEMODE_01, COMP_TYPE_JBIB, GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB))
IF (iTexture = 7 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_LSBELLE)
OR (iTexture = 4 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_ROCKSTAR)
OR (iTexture = 9 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_REDSKULL)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ", ", eTorsoDecal, ") - v-neck")
RETURN TRUE
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ", ", eTorsoDecal, ") - v-neck")
BREAK
ENDSWITCH
BREAK
CASE 1 //Wearing Track Jacket + T-shirt
SWITCH iTexture
CASE 1 //Salamanders T-shirt [T-SHIRTS 9/13]
CASE 2 //The Feud T-Shirt [T-SHIRTS 6/13]
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ") - t-shirt")
RETURN TRUE
BREAK
CASE 7 //Los Santos Belle V Neck
CASE 4 //Rockstar V Neck
CASE 9 //Red Skull V Neck
TATTOO_NAME_ENUM eTorsoDecal
eTorsoDecal = GET_TORSO_DECAL_TATTOO_MP(MP_F_FREEMODE_01, COMP_TYPE_JBIB, GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB))
IF (iTexture = 7 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_LSBELLE)
OR (iTexture = 4 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_ROCKSTAR)
OR (iTexture = 9 AND eTorsoDecal = TSHIRT_TRANS_MP_FM_REDSKULL)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ", ", eTorsoDecal, ") - v-neck")
RETURN TRUE
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ", ", eTorsoDecal, ") - v-neck")
BREAK
ENDSWITCH
BREAK
CASE 2
SWITCH iTexture
CASE 1
CASE 3
CASE 5
CASE 7
CASE 4
CASE 8
CASE 11
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 11
SWITCH iTexture
CASE 10 //Los Santos 01
CASE 11 //LS Racerback
CASE 15 //LC Penetrator
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE 14
SWITCH iTexture
CASE 3
CASE 5
CASE 6
CASE 8
CASE 4
CASE 14
CASE 1
CASE 7
CASE 12
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
BREAK
ENDSWITCH
BREAK
DEFAULT
IF iDrawable > 15
// Does the DLC SPECIAL with a tattoo decl?
PED_COMP_NAME_ENUM eItem
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_SPECIAL)
IF eItem >= SPECIAL_FMF_DLC
INT iDLCNameHash
iDLCNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_F_FREEMODE_01, eItem, COMP_TYPE_SPECIAL, 4)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL_NO_SAVE, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_COMBAT_TOP, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_F_FREEMODE_01 SPECIAL (", iDrawable, ", ", iTexture, ") hash:", iDLCNameHash)
ENDIF
ENDIF
ENDIF
BREAK
ENDSWITCH
CPRINTLN(DEBUG_PED_COMP, "not should_chest_tattoos_be_blocked_for_outfit - MP_F_FREEMODE_01 JBIB (", GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB), ", ", GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_JBIB), ") SPECIAL (", GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL), ", ", GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_SPECIAL), ")")
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL SHOULD_CREW_EMBLEMS_BE_BLOCKED_FOR_OUTFIT(PED_INDEX pedID)
IF NETWORK_IS_ACTIVITY_SESSION()
int iTeamChosen = GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].sClientCoronaData.iTeamChosen
if iTeamChosen != -1
AND iTeamChosen < MAX_MISS_CONTROLER_TEAMS
IF GET_LOCAL_DEFAULT_OUTFIT(iTeamChosen)!= enum_to_int(OUTFIT_MP_DEFAULT ) //g_FMMC_STRUCT.iHeistOutfit
and GET_LOCAL_DEFAULT_OUTFIT(iTeamChosen)!= enum_to_int(OUTFIT_MP_FREEMODE)
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CREW_EMBLEMS_BE_BLOCKED_FOR_OUTFIT blocked because they are wearing a team outfit ")
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_crew_emblems_be_blocked_for_outfit GET_LOCAL_DEFAULT_OUTFIT = OUTFIT_MP_DEFAULT or OUTFIT_MP_FREEMODE ")
ENDIF
else
CPRINTLN(DEBUG_PED_COMP, "not should_crew_emblems_be_blocked_for_outfit iTeamChosen = -1")
ENDIF
ENDIF
IF NOT IS_PED_INJURED(pedID)
// Remove when player has bear chest.
IF GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01
IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB) = 15 // Bare chest
CPRINTLN(DEBUG_PED_COMP, "SHOULD_CREW_EMBLEMS_BE_BLOCKED_FOR_OUTFIT blocked MP_M_FREEMODE_01 JBIB (15, 0)")
RETURN TRUE
ENDIF
ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_crew_emblems_be_blocked_for_outfit")
RETURN FALSE
ENDFUNC
FUNC BOOL SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT_DM(PED_INDEX pedID)
IF NOT IS_PED_INJURED(pedID)
INT iDrawable, iTexture
IF GET_ENTITY_MODEL(pedID) = MP_F_FREEMODE_01
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB)
iTexture = GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_JBIB)
IF iDrawable = 3
IF iTexture = 14
CPRINTLN(DEBUG_PED_COMP, "SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT_DM (TRUE)- MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ")")
RETURN TRUE
ENDIF
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT(PED_INDEX pedID, INT iTShirtDecalHashOverride = -1)
IF NOT IS_PED_INJURED(pedID)
INT iDrawable, iTexture, iTShirtDecalHash
IF GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB)
iTShirtDecalHash = GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH)
IF iTShirtDecalHashOverride != -1
iTShirtDecalHash = iTShirtDecalHashOverride
ENDIF
IF iDrawable > 15
// Does the DLC JBIB with a tattoo decl?
PED_COMP_NAME_ENUM eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB)
IF eItem >= JBIB_FMM_DLC
INT iDLCNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_M_FREEMODE_01, eItem, COMP_TYPE_JBIB, 3)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL_NO_SAVE, ENUM_TO_INT(SHOP_PED_COMPONENT))
SWITCH iTShirtDecalHash
CASE HASH("MP_Elite_M_Tshirt_1")
CASE HASH("MP_Battle_Clothing_000_M")
CASE HASH("MP_Heist4_Tee_039_M")
CASE HASH("MP_Heist4_Tee_041_M")
CASE HASH("MP_Heist4_Tee_043_M")
CASE HASH("MP_Heist4_Tee_049_M")
CASE HASH("MP_Heist4_Tee_051_M")
CASE HASH("MP_Heist4_Tee_055_M")
CASE HASH("MP_Heist4_Tee_057_M")
CASE HASH("MP_Heist4_Tee_059_M")
CASE HASH("MP_Heist4_Tee_061_M")
CASE HASH("MP_Heist4_Tee_063_M")
CASE HASH("MP_Heist4_Tee_065_M")
CASE HASH("MP_Tuner_Tee_000_M")
CASE HASH("MP_Tuner_Tee_002_M")
CASE HASH("MP_Tuner_Tee_003_M")
CASE HASH("MP_Tuner_Tee_005_M")
CASE HASH("MP_Tuner_Tee_006_M")
CASE HASH("MP_Tuner_Tee_008_M")
CASE HASH("MP_Tuner_Tee_010_M")
CPRINTLN(DEBUG_PED_COMP, "SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, "), iTShirtDecalHash: ", iTShirtDecalHash)
RETURN TRUE
BREAK
ENDSWITCH
CPRINTLN(DEBUG_PED_COMP, "not should_back_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, "), iDLCNameHash: ", iDLCNameHash, ", iTShirtDecalHash: ", iTShirtDecalHash)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, "), jacket")
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_back_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, "), iDLCNameHash: ", iDLCNameHash, ", iTShirtDecalHash: ", iTShirtDecalHash)
ENDIF
RETURN FALSE
ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_back_tattoos_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, "), iTShirtDecalHash: ", iTShirtDecalHash)
RETURN FALSE
ELIF GET_ENTITY_MODEL(pedID) = MP_F_FREEMODE_01
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB)
iTexture = GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_JBIB)
iTShirtDecalHash = GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH)
IF iTShirtDecalHashOverride != -1
iTShirtDecalHash = iTShirtDecalHashOverride
ENDIF
IF iDrawable = 3
IF iTexture = 14
CPRINTLN(DEBUG_PED_COMP, "SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, ", ", iTexture, ")")
RETURN TRUE //JBIB_FMF_3_14, TATTOO_MP_FM_FTD_36
ENDIF
ELIF iDrawable > 15
// Does the DLC JBIB with a tattoo decl?
PED_COMP_NAME_ENUM eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB)
IF eItem >= JBIB_FMF_DLC
INT iDLCNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_F_FREEMODE_01, eItem, COMP_TYPE_JBIB, 4)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_TAT_DECL_NO_SAVE, ENUM_TO_INT(SHOP_PED_COMPONENT))
SWITCH iTShirtDecalHash
CASE HASH("MP_Elite_F_Tshirt_1")
CASE HASH("MP_Battle_Clothing_000_F")
CASE HASH("MP_Heist4_Tee_039_F")
CASE HASH("MP_Heist4_Tee_041_F")
CASE HASH("MP_Heist4_Tee_043_F")
CASE HASH("MP_Heist4_Tee_049_F")
CASE HASH("MP_Heist4_Tee_051_F")
CASE HASH("MP_Heist4_Tee_055_F")
CASE HASH("MP_Heist4_Tee_057_F")
CASE HASH("MP_Heist4_Tee_059_F")
CASE HASH("MP_Heist4_Tee_061_F")
CASE HASH("MP_Heist4_Tee_063_F")
CASE HASH("MP_Heist4_Tee_065_F")
CASE HASH("MP_Tuner_Tee_000_F")
CASE HASH("MP_Tuner_Tee_002_F")
CASE HASH("MP_Tuner_Tee_003_F")
CASE HASH("MP_Tuner_Tee_005_F")
CASE HASH("MP_Tuner_Tee_006_F")
CASE HASH("MP_Tuner_Tee_008_F")
CASE HASH("MP_Tuner_Tee_010_F")
CPRINTLN(DEBUG_PED_COMP, "SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, "), iTShirtDecalHash: ", iTShirtDecalHash)
RETURN TRUE
BREAK
ENDSWITCH
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, "), jacket")
RETURN TRUE
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_back_tattoos_be_blocked_for_outfit - MP_F_FREEMODE_01 JBIB (", iDrawable, "), iDLCNameHash: ", iDLCNameHash, ", iTShirtDecalHash: ", iTShirtDecalHash)
RETURN FALSE
ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_back_tattoos_be_blocked_for_outfit - MP_F_FREEMODE_01 JBIB (", iDrawable, "), iTShirtDecalHash: ", iTShirtDecalHash)
RETURN FALSE
ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, "not should_back_tattoos_be_blocked_for_outfit")
RETURN FALSE
ENDFUNC
FUNC BOOL SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT(PED_INDEX pedID)
IF NOT IS_PED_INJURED(pedID)
INT iDrawable //, iTexture
IF GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01
IF (NETWORK_GET_PLAYER_INDEX_FROM_PED(pedID) != INVALID_PLAYER_INDEX())
AND GB_OUTFITS_IS_PLAYER_WEARING_GANG_OUTFIT(NETWORK_GET_PLAYER_INDEX_FROM_PED(pedID))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 gb outfits is player wearing gang outfit")
RETURN TRUE
ENDIF
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB)
#IF IS_DEBUG_BUILD
INT iTShirtDecalHash = GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH)
#ENDIF
IF iDrawable > 15
// Does the DLC JBIB with a tattoo decl?
PED_COMP_NAME_ENUM eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB)
IF eItem >= JBIB_FMM_DLC
INT iDLCNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_M_FREEMODE_01, eItem, COMP_TYPE_JBIB, 3)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_11, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, "), BIKER_DRAW_11 (Leather Hoodie)")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_17, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_18, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_20, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_21, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_23, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_27, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, "), BIKER_VEST")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_JUGG_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, "), JUGG_SUIT")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_STUNT_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, "), STUNT_DRAW_1")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_JUGG_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, "), JUGG_SUIT")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_X17_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_M_FREEMODE_01 JBIB (", iDrawable, "), X17_DRAW_6")
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_torso_decals_be_blocked_for_outfit - MP_M_FREEMODE_01 JBIB (", iDrawable, "), iDLCNameHash: ", iDLCNameHash, ", iTShirtDecalHash: ", iTShirtDecalHash)
ENDIF
ENDIF
ENDIF
ELIF GET_ENTITY_MODEL(pedID) = MP_F_FREEMODE_01
IF (NETWORK_GET_PLAYER_INDEX_FROM_PED(pedID) != INVALID_PLAYER_INDEX())
AND GB_OUTFITS_IS_PLAYER_WEARING_GANG_OUTFIT(NETWORK_GET_PLAYER_INDEX_FROM_PED(pedID))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 gb outfits is player wearing gang outfit")
RETURN TRUE
ENDIF
iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB)
#IF IS_DEBUG_BUILD
INT iTShirtDecalHash = GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH)
#ENDIF
IF iDrawable > 15
// Does the DLC JBIB with a tattoo decl?
PED_COMP_NAME_ENUM eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB)
IF eItem >= JBIB_FMM_DLC
INT iDLCNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_F_FREEMODE_01, eItem, COMP_TYPE_JBIB, 4)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_11, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, "), BIKER_DRAW_11 (Leather Hoodie)")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_22, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_23, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_24, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_25, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_26, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_28, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_32, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, "), BIKER_VEST")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_JUGG_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, "), JUGG_SUIT")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_STUNT_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, "), STUNT_DRAW_1")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_JUGG_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, "), JUGG_SUIT")
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_X17_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT - MP_F_FREEMODE_01 JBIB (", iDrawable, "), X17_DRAW_6")
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "not should_torso_decals_be_blocked_for_outfit - MP_F_FREEMODE_01 JBIB (", iDrawable, "), iDLCNameHash: ", iDLCNameHash, ", iTShirtDecalHash: ", iTShirtDecalHash)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_TATTOO_SAFE_TO_APPLY_DM(STRING sLabel, INT iCollection, INT iUpgradeGroup, BOOL bBlockChestTattoos, BOOL bBlockCrewEmblems, BOOL bBlockTorsoDecals, BOOL bBlockBackTattoos)
CPRINTLN(DEBUG_PED_COMP, "-IS_TATTOO_SAFE_TO_APPLY_DM(\"", sLabel, "\", iUpgradeGroup:", DEBUG_get_string_from_namehash(iUpgradeGroup), ", bBlockChestTattoos: ", GET_STRING_FROM_BOOL(bBlockChestTattoos), ", bBlockCrewEmblems: ", GET_STRING_FROM_BOOL(bBlockCrewEmblems), ", bBlockTorsoDecals: ", GET_STRING_FROM_BOOL(bBlockTorsoDecals), ", bBlockBackTattoos: ", GET_STRING_FROM_BOOL(bBlockBackTattoos), "):", GET_STRING_FROM_TEXT_FILE(sLabel))
IF iCollection = HASH("mpDummy")
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY_DM() FALSE!! mpDummy collection!!")
RETURN FALSE
ENDIF
SWITCH iUpgradeGroup
CASE HASH("CHEST_MID")
CASE HASH("SIDE_RIGHT")
CASE HASH("STOMACH_RIGHT")
CASE HASH("CHEST_LEFT")
CASE HASH("CHEST_RIGHT")
CASE HASH("CHEST_FULL")
CASE HASH("STOMACH_LEFT")
CASE HASH("STOMACH_MID")
CASE HASH("STOMACH FULL")
CASE HASH("TORSO_SIDE_LEFT")
CASE HASH("TORSO_SIDE_RIGHT")
CASE HASH("STOMACH_LOWER_LEFT")
CASE HASH("STOMACH_LOWER_RIGHT")
CASE HASH("CHEST_STOM")
CASE HASH("CHEST_STOM_FULL")
CASE HASH("STOMACH_FULL")
IF bBlockChestTattoos
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY_DM(chest) FALSE!! blocked for bBlockChestTattoos!!")
RETURN FALSE
ENDIF
BREAK
CASE HASH("BACK_1")
CASE HASH("BACK_FULL_ARMS_FULL_BACK")
DEBUG_PRINTCALLSTACK()
IF bBlockBackTattoos
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY_DM(back) FALSE!! blocked for bBlockBackTattoos!!")
RETURN FALSE
ENDIF
BREAK
CASE HASH("crewLogo")
IF bBlockCrewEmblems
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY_DM(crewLogo) FALSE!! blocked for bBlockCrewEmblems!!")
RETURN FALSE
ENDIF
BREAK
CASE 0
CASE HASH("")
CASE HASH("rank")
#IF IS_DEBUG_BUILD
IF DOES_TEXT_LABEL_EXIST(sLabel)
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), ": IS_BLOCKED_CHEST_TATTOO_SAFE_TO_APPLY(\"", sLabel, "\", iUpgradeGroup:", iUpgradeGroup, ", bBlockChestTattoos: ", bBlockChestTattoos, ", bBlockCrewEmblems: ", bBlockCrewEmblems, ", bBlockTorsoDecals: ", bBlockTorsoDecals, "):", GET_STRING_FROM_TEXT_FILE(sLabel))
ELSE
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), ": IS_UNKNOWN_BLOCKED_CHEST_TATTOO_SAFE_TO_APPLY(\"", sLabel, "\", iUpgradeGroup:", iUpgradeGroup, ", bBlockChestTattoos: ", bBlockChestTattoos, ", bBlockCrewEmblems: ", bBlockCrewEmblems, ", bBlockTorsoDecals: ", bBlockTorsoDecals, ")")
ENDIF
#ENDIF
IF bBlockChestTattoos
IF NOT IS_STRING_NULL_OR_EMPTY(sLabel)
SWITCH GET_HASH_KEY(sLabel)
CASE HASH("TAT_FM_011") //Blackjack / TATTOO_MP_FM_ARMOURED_VAN_TAKEDOWN
CASE HASH("TAT_FM_012") //Hustler / TATTOO_MP_FM_HUSTLER
CASE HASH("TAT_FM_019") //Blank Scroll / TATTOO_MP_FM_REACH_RANK_1
CASE HASH("TAT_FM_020") //Embellished Scroll / TATTOO_MP_FM_REACH_RANK_2
CASE HASH("TAT_FM_021") //Seven Deadly Sins / TATTOO_MP_FM_REACH_RANK_3
CASE HASH("TAT_FM_218") //LS Flames / TATTOO_MP_FM_18
CASE HASH("TAT_FM_219") //Faith / TATTOO_MP_FM_19
CASE HASH("TAT_FM_220") //Los Santos Bills / TATTOO_MP_FM_20
CASE HASH("TAT_FM_225") //Flaming Cross / TATTOO_MP_FM_25
CASE HASH("TAT_FM_226") //LS Bold / TATTOO_MP_FM_26
CASE HASH("TAT_FM_230") //Trinity Knot / TATTOO_MP_FM_30
CASE HASH("TAT_FM_233") //Faith / TATTOO_MP_FM_33
CASE HASH("TAT_FM_235") //Flaming Shamrock / TATTOO_MP_FM_35
CASE HASH("TAT_FM_237") //Way of the Gun / TATTOO_MP_FM_37
CASE HASH("TAT_FM_245") //Stone Cross / TATTOO_MP_FM_45
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY_DM(0) FALSE!! blocked FM tattoo!!")
RETURN FALSE
BREAK
ENDSWITCH
ENDIF
ENDIF
BREAK
CASE HASH("torsoDecal")
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY_DM torsoDecal check (bBlockTorsoDecals:", GET_STRING_FROM_BOOL(bBlockTorsoDecals), ")")
IF bBlockTorsoDecals
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY_DM(torsoDecal) FALSE!! blocked for bBlockTorsoDecals!!")
RETURN FALSE
ENDIF
BREAK
ENDSWITCH
RETURN TRUE
ENDFUNC
FUNC BOOL IS_TATTOO_SAFE_TO_APPLY(PED_INDEX pedID, STRING sLabel, TATTOO_NAME_ENUM eTattoo, INT iCollection, INT iUpgradeGroup, BOOL bBlockChestTattoos, BOOL bBlockCrewEmblems, BOOL bBlockTorsoDecals, BOOL bBlockBackTattoos)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(pedID)
IF iUpgradeGroup = 0
TATTOO_GROUP_ENUM group = GET_TATTOO_GROUP_FROM_LABEL(ePedModel, sLabel, iUpgradeGroup)
iUpgradeGroup = GET_HASH_KEY(GET_STRING_FROM_TATTOO_GROUP(group))
ENDIF
UNUSED_PARAMETER(eTattoo)
CPRINTLN(DEBUG_PED_COMP, "-IS_TATTOO_SAFE_TO_APPLY(\"", sLabel, "\" eTattoo:", eTattoo,
" (bitset:", GET_TATTOO_CURRENT_BITSET(eTattoo), ", bitindex:", GET_WEAPON_INDEX_BITSET(ENUM_TO_INT(eTattoo)), ") ",
DEBUG_get_string_from_namehash(iUpgradeGroup), PICK_STRING(bBlockChestTattoos, ", bBlockChestTattoos ", ""), PICK_STRING(bBlockCrewEmblems, ", bBlockCrewEmblems ", ""), PICK_STRING(bBlockTorsoDecals, ", bBlockTorsoDecals ", ""), PICK_STRING(bBlockBackTattoos, ", bBlockBackTattoos):", "):"), GET_STRING_FROM_TEXT_FILE(sLabel))
DEBUG_PRINTCALLSTACK()
IF iCollection = HASH("mpDummy")
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY() FALSE!! mpDummy collection!!")
RETURN FALSE
ENDIF
SWITCH iUpgradeGroup
CASE HASH("CHEST_FULL")
CASE HASH("CHEST_LEFT")
CASE HASH("CHEST_MID")
CASE HASH("CHEST_RIGHT")
CASE HASH("CHEST_STOM")
CASE HASH("CHEST_STOM_FULL")
CASE HASH("SIDE_RIGHT")
CASE HASH("TORSO_SIDE_LEFT")
CASE HASH("TORSO_SIDE_RIGHT")
CASE HASH("STOMACH FULL")
CASE HASH("STOMACH_FULL")
CASE HASH("STOMACH_LEFT")
CASE HASH("STOMACH_LOWER_LEFT")
CASE HASH("STOMACH_LOWER_RIGHT")
CASE HASH("STOMACH_MID")
CASE HASH("STOMACH_RIGHT")
IF bBlockChestTattoos
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for bBlockChestTattoos!!")
RETURN FALSE
ENDIF
IF (iUpgradeGroup = HASH("CHEST_FULL"))
OR (iUpgradeGroup = HASH("CHEST_MID") AND ePedModel = MP_F_FREEMODE_01)
OR (iUpgradeGroup = HASH("CHEST_RIGHT"))
OR (iUpgradeGroup = HASH("CHEST_STOM"))
OR (iUpgradeGroup = HASH("CHEST_STOM_FULL"))
IF NOT bBlockCrewEmblems
IF (g_eCurrentPreviewEmblem = INVALID_TATTOO)
IF NOT g_sShopSettings.bPreviewTattooMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo A!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B) //Crew Emblem Small
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo B!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo C!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo D!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo E!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) not blocked for crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) not blocked - no crew tattoo")
ENDIF
ENDIF
ELSE
IF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_A)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo A!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_B) //Crew Emblem Small
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo B!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo C!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_D)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo D!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_E) //Crew Emblem Large
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo E!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_F) //Crew Emblem Back
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) not blocked for preview crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) not blocked - no preview crew tattoo [", g_eCurrentPreviewEmblem, "]")
ENDIF
ENDIF
ENDIF
ELIF (iUpgradeGroup = HASH("CHEST_LEFT"))
IF NOT bBlockCrewEmblems
IF (g_eCurrentPreviewEmblem = INVALID_TATTOO)
IF NOT g_sShopSettings.bPreviewTattooMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo A!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B) //Crew Emblem Small
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo B!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo C!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo D!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for crew tattoo E!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) not blocked for crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) not blocked - no crew tattoo")
ENDIF
ENDIF
ELSE
IF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_A)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo A!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_B) //Crew Emblem Small
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo B!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo C!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_D)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo D!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_E)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) FALSE!! blocked for preview crew tattoo E!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) not blocked for preview crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(chest) not blocked - no preview crew tattoo [", g_eCurrentPreviewEmblem, "]")
ENDIF
ENDIF
ENDIF
ELIF (iUpgradeGroup = HASH("STOMACH_FULL"))
OR (iUpgradeGroup = HASH("STOMACH_MID"))
OR (iUpgradeGroup = HASH("STOMACH_LEFT"))
IF NOT bBlockCrewEmblems
IF (g_eCurrentPreviewEmblem = INVALID_TATTOO)
IF NOT g_sShopSettings.bPreviewTattooMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) not blocked for crew tattoo A!!")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B) //Crew Emblem Large
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) FALSE!! blocked for crew tattoo B!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C) //Crew Emblem Large
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) FALSE!! blocked for crew tattoo C!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) not blocked for crew tattoo D")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) FALSE!! blocked for crew tattoo E!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) not blocked for crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) not blocked - no crew tattoo")
ENDIF
ENDIF
ELSE
IF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_A)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) not blocked for preview crew tattoo A!!")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_B)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) FALSE!! blocked for preview crew tattoo B!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_C) //Crew Emblem Large
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) FALSE!! blocked for preview crew tattoo C!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) not blocked for preview crew tattoo D")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_E) //Crew Emblem Large
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) FALSE!! blocked for preview crew tattoo E!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) not blocked for preview crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(stomach) not blocked - no preview crew tattoo [", g_eCurrentPreviewEmblem, "]")
ENDIF
ENDIF
ENDIF
ELIF (iUpgradeGroup = HASH("BACK_UPPER"))
IF NOT bBlockCrewEmblems
IF (g_eCurrentPreviewEmblem = INVALID_TATTOO)
IF NOT g_sShopSettings.bPreviewTattooMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo A!!")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B) //Crew Emblem Large
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo B!!")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C) //Crew Emblem Large
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo C!!")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo D")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo E!!")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked - no crew tattoo")
ENDIF
ENDIF
ELSE
IF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_A)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo A!!")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_B)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo B!!")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_C) //Crew Emblem Large
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo C!!")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo D")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_E) //Crew Emblem Large
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo E!!")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked - no preview crew tattoo [", g_eCurrentPreviewEmblem, "]")
ENDIF
ENDIF
ENDIF
ENDIF
BREAK
CASE HASH("BACK_1")
CASE HASH("BACK_FULL")
CASE HASH("BACK_FULL_ARMS_FULL_BACK")
CASE HASH("BACK_FULL_SHORT")
CASE HASH("BACK_LOWER")
// CASE HASH("BACK_LOWER_LEFT")
// CASE HASH("BACK_LOWER_MID")
// CASE HASH("BACK_LOWER_RIGHT")
CASE HASH("BACK_MID")
CASE HASH("BACK_UPPER")
CASE HASH("BACK_UPPER_LEFT")
CASE HASH("BACK_UPPER_RIGHT")
IF bBlockBackTattoos
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) FALSE!! blocked for bBlockBackTattoos!!")
RETURN FALSE
ENDIF
IF NOT bBlockCrewEmblems
IF (g_eCurrentPreviewEmblem = INVALID_TATTOO)
IF NOT g_sShopSettings.bPreviewTattooMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo A")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo B")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) FALSE!! blocked for crew tattoo C!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo D")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for crew tattoo E")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F) //Crew Emblem Back
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) FALSE!! blocked for crew tattoo F!!")
RETURN FALSE
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked - no crew tattoo")
ENDIF
ENDIF
ELSE
IF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_A)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo A")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_B)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo B")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) FALSE!! blocked for preview crew tattoo C!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo D")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_E)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked for preview crew tattoo E")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_F) //Crew Emblem Back
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) FALSE!! blocked for preview crew tattoo F!!")
RETURN FALSE
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(back) not blocked - no preview crew tattoo [", g_eCurrentPreviewEmblem, "]")
ENDIF
ENDIF
ENDIF
BREAK
CASE HASH("crewLogo")
IF bBlockBackTattoos
IF ePedModel = MP_M_FREEMODE_01
IF (g_eCurrentPreviewEmblem = INVALID_TATTOO)
IF NOT g_sShopSettings.bPreviewTattooMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for bBlockBackTattoos - crew tattoo C!!")
RETURN FALSE
ENDIF
ENDIF
ELSE
IF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for preview bBlockBackTattoos - crew tattoo C!!")
RETURN FALSE
ENDIF
ENDIF
ENDIF
ENDIF
IF bBlockCrewEmblems
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for bBlockCrewEmblems!!")
RETURN FALSE
ENDIF
IF bBlockChestTattoos
IF (g_eCurrentPreviewEmblem = INVALID_TATTOO)
IF NOT g_sShopSettings.bPreviewTattooMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for crew tattoo A!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for crew tattoo B!!")
RETURN FALSE
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C)
IF NOT ARE_STRINGS_EQUAL(sLabel, "TAT_FMM_CLB")
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for crew tattoo C ", sLabel, "!!")
RETURN FALSE
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked for crew tattoo C ", sLabel)
ENDIF
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked for crew tattoo D")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked for crew tattoo E")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked for crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked - no crew tattoo")
ENDIF
ENDIF
ELSE
IF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_A)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for preview crew tattoo A!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_B)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for preview crew tattoo B!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_C)
IF NOT ARE_STRINGS_EQUAL(sLabel, "TAT_FMM_CLB")
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for preview crew tattoo C ", sLabel, "!!")
RETURN FALSE
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked for preview crew tattoo C ", sLabel)
ENDIF
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked for preview crew tattoo D")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_E)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked for preview crew tattoo E")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked for preview crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) not blocked - no preview crew tattoo [", g_eCurrentPreviewEmblem, "]")
ENDIF
ENDIF
ENDIF
// IF ePedModel = MP_M_FREEMODE_01
//
// ELIF ePedModel = MP_F_FREEMODE_01
// IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
// CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(crewLogo) FALSE!! blocked for crew tattoo A!!")
// RETURN FALSE
// ENDIF
// ENDIF
BREAK
CASE 0
CASE HASH("")
CASE HASH("rank")
#IF IS_DEBUG_BUILD
IF DOES_TEXT_LABEL_EXIST(sLabel)
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), ": IS_BLOCKED_CHEST_TATTOO_SAFE_TO_APPLY(\"", sLabel, "\", iUpgradeGroup:", iUpgradeGroup, ", bBlockChestTattoos: ", bBlockChestTattoos, ", bBlockCrewEmblems: ", bBlockCrewEmblems, ", bBlockTorsoDecals: ", bBlockTorsoDecals, "):", GET_STRING_FROM_TEXT_FILE(sLabel))
ELSE
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), ": IS_UNKNOWN_BLOCKED_CHEST_TATTOO_SAFE_TO_APPLY(\"", sLabel, "\", iUpgradeGroup:", iUpgradeGroup, ", bBlockChestTattoos: ", bBlockChestTattoos, ", bBlockCrewEmblems: ", bBlockCrewEmblems, ", bBlockTorsoDecals: ", bBlockTorsoDecals, ")")
ENDIF
#ENDIF
IF bBlockChestTattoos
IF NOT IS_STRING_NULL_OR_EMPTY(sLabel)
SWITCH GET_HASH_KEY(sLabel)
CASE HASH("TAT_FM_011") //Blackjack / TATTOO_MP_FM_ARMOURED_VAN_TAKEDOWN
CASE HASH("TAT_FM_012") //Hustler / TATTOO_MP_FM_HUSTLER
CASE HASH("TAT_FM_019") //Blank Scroll / TATTOO_MP_FM_REACH_RANK_1
CASE HASH("TAT_FM_020") //Embellished Scroll / TATTOO_MP_FM_REACH_RANK_2
CASE HASH("TAT_FM_021") //Seven Deadly Sins / TATTOO_MP_FM_REACH_RANK_3
CASE HASH("TAT_FM_218") //LS Flames / TATTOO_MP_FM_18
CASE HASH("TAT_FM_219") //Faith / TATTOO_MP_FM_19
CASE HASH("TAT_FM_220") //Los Santos Bills / TATTOO_MP_FM_20
CASE HASH("TAT_FM_225") //Flaming Cross / TATTOO_MP_FM_25
CASE HASH("TAT_FM_226") //LS Bold / TATTOO_MP_FM_26
CASE HASH("TAT_FM_230") //Trinity Knot / TATTOO_MP_FM_30
CASE HASH("TAT_FM_233") //Faith / TATTOO_MP_FM_33
CASE HASH("TAT_FM_235") //Flaming Shamrock / TATTOO_MP_FM_35
CASE HASH("TAT_FM_237") //Way of the Gun / TATTOO_MP_FM_37
CASE HASH("TAT_FM_245") //Stone Cross / TATTOO_MP_FM_45
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) FALSE!! blocked FM tattoo!!")
RETURN FALSE
BREAK
ENDSWITCH
ENDIF
ENDIF
IF ePedModel = MP_M_FREEMODE_01
ELIF ePedModel = MP_F_FREEMODE_01
IF NOT bBlockCrewEmblems
IF (g_eCurrentPreviewEmblem = INVALID_TATTOO)
IF NOT g_sShopSettings.bPreviewTattooMode
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for crew tattoo A!!")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for crew tattoo B")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for crew tattoo C")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for crew tattoo D")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for crew tattoo E")
ELIF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked - no crew tattoo")
ENDIF
ENDIF
ELSE
IF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_A)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) FALSE!! blocked for preview crew tattoo A!!")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_B)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for preview crew tattoo B")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_C)
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) FALSE!! blocked for preview crew tattoo C")
RETURN FALSE
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_D)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for preview crew tattoo D")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_E)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for preview crew tattoo E")
ELIF (g_eCurrentPreviewEmblem = TATTOO_MP_FM_CREW_F)
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked for preview crew tattoo F")
ELSE
CDEBUG1LN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY(0) not blocked - no preview crew tattoo [", g_eCurrentPreviewEmblem, "]")
ENDIF
ENDIF
ENDIF
ENDIF
BREAK
CASE HASH("torsoDecal")
IF bBlockTorsoDecals
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY torsoDecal FALSE!! blocked for bBlockTorsoDecals!!")
DEBUG_PRINTCALLSTACK()
RETURN FALSE
ENDIF
CPRINTLN(DEBUG_PED_COMP, "IS_TATTOO_SAFE_TO_APPLY torsoDecal \"", sLabel, "\" check (bBlockTorsoDecals:", GET_STRING_FROM_BOOL(bBlockTorsoDecals), "):", GET_STRING_FROM_TEXT_FILE(sLabel))
DEBUG_PRINTCALLSTACK()
BREAK
ENDSWITCH
RETURN TRUE
ENDFUNC
#ENDIF
#IF USE_TU_CHANGES
/// PURPOSE:
/// Returns whether the jbib can be used with a non-decal based crew logo
FUNC BOOL CAN_JBIB_HAVE_CREW_LOGO(MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM eJbib, TATTOO_NAME_ENUM eCrewLogo)
IF NOT IS_JBIB_COMPONENT_A_JACKET(ePedModel, eJbib)
IF ePedModel = MP_M_FREEMODE_01
INT iDLCJbibCheck = -1
INT iDLCJbibNameHash = -1
IF eJbib >= JBIB_FMM_DLC
iDLCJbibNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eJbib, COMP_TYPE_JBIB, 3)
iDLCJbibCheck = GET_DLC_DRAW_TAG(iDLCJbibNameHash)
ENDIF
IF iDLCJbibNameHash != -1
AND GET_LUXE_DRAW_INDEX_FROM_LUXE_CLOTH(iDLCJbibNameHash, ENUM_TO_INT(SHOP_PED_COMPONENT)) != -1
CPRINTLN(DEBUG_PED_COMP, "Crew logos don't work with any Luxe tops.")
RETURN FALSE
ENDIF
IF iDLCJbibNameHash != -1
AND GET_LUXE2_DRAW_INDEX_FROM_LUXE_CLOTH(iDLCJbibNameHash, ENUM_TO_INT(SHOP_PED_COMPONENT)) != -1
CPRINTLN(DEBUG_PED_COMP, "Crew logos don't work with any Luxe2 tops.")
RETURN FALSE
ENDIF
IF iDLCJbibNameHash != -1
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibNameHash, DLC_RESTRICTION_TAG_NO_CREW_EMBLEM, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "Crew logos don't work with this jbib.")
RETURN FALSE
ENDIF
IF iDLCJbibNameHash = HASH("DLC_MP_VAL_M_JBIB2_0")
OR iDLCJbibNameHash = HASH("DLC_MP_VAL_M_JBIB2_1")
OR iDLCJbibNameHash = HASH("DLC_MP_VAL_M_JBIB2_2")
CPRINTLN(DEBUG_PED_COMP, "Crew logos don't work with valentine tops.")
RETURN FALSE
ENDIF
// male
IF (eJbib >= JBIB_FMM_0_0 AND eJbib <= JBIB_FMM_0_15)
OR (eJbib >= JBIB_FMM_1_0 AND eJbib <= JBIB_FMM_1_15)
OR (eJbib >= JBIB_FMM_8_0 AND eJbib <= JBIB_FMM_8_15)
OR iDLCJbibCheck = 0
OR iDLCJbibCheck = 1
OR iDLCJbibCheck = 8
IF eCrewLogo = TATTOO_MP_FM_CREW_C
RETURN TRUE // back logo is fine
ELIF eCrewLogo = TATTOO_MP_FM_CREW_A
OR eCrewLogo = TATTOO_MP_FM_CREW_B
// front logo only used if no decal on this jbib
IF GET_TORSO_DECAL_TATTOO_MP(ePedModel, COMP_TYPE_JBIB, eJbib) = INVALID_TATTOO
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "Cant have front crew logo with this top: has a tshirt decal")
ENDIF
ENDIF
ELIF (eJbib >= JBIB_FMM_5_0 AND eJbib <= JBIB_FMM_5_15)
OR iDLCJbibCheck = 5
IF eCrewLogo = TATTOO_MP_FM_CREW_D
OR eCrewLogo = TATTOO_MP_FM_CREW_E
OR eCrewLogo = TATTOO_MP_FM_CREW_F
RETURN TRUE
ENDIF
ELIF (eJbib >= JBIB_FMM_9_0 AND eJbib <= JBIB_FMM_9_15)
OR iDLCJbibCheck = 9
IF eCrewLogo = TATTOO_MP_FM_CREW_A
OR eCrewLogo = TATTOO_MP_FM_CREW_C
RETURN TRUE
ENDIF
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
INT iDLCJbibCheck = -1
INT iDLCJbibNameHash = -1
IF eJbib >= JBIB_FMF_DLC
iDLCJbibNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eJbib, COMP_TYPE_JBIB, 4)
iDLCJbibCheck = GET_DLC_DRAW_TAG(iDLCJbibNameHash)
ENDIF
IF iDLCJbibNameHash != -1
AND GET_LUXE_DRAW_INDEX_FROM_LUXE_CLOTH(iDLCJbibNameHash, ENUM_TO_INT(SHOP_PED_COMPONENT)) != -1
CPRINTLN(DEBUG_PED_COMP, "Crew logos don't work with any Luxe tops.")
RETURN FALSE
ENDIF
IF iDLCJbibNameHash != -1
AND GET_LUXE2_DRAW_INDEX_FROM_LUXE_CLOTH(iDLCJbibNameHash, ENUM_TO_INT(SHOP_PED_COMPONENT)) != -1
CPRINTLN(DEBUG_PED_COMP, "Crew logos don't work with any Luxe2 tops.")
RETURN FALSE
ENDIF
IF iDLCJbibNameHash != -1
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibNameHash, DLC_RESTRICTION_TAG_NO_CREW_EMBLEM, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "Crew logos don't work with this jbib.")
RETURN FALSE
ENDIF
// female
IF (eJbib >= JBIB_FMF_0_0 AND eJbib <= JBIB_FMF_0_15)
OR iDLCJbibCheck = 0
IF eCrewLogo = TATTOO_MP_FM_CREW_A
OR eCrewLogo = TATTOO_MP_FM_CREW_C
// front logo only used if no decal on this jbib
IF GET_TORSO_DECAL_TATTOO_MP(ePedModel, COMP_TYPE_JBIB, eJbib) = INVALID_TATTOO
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "Cant have front crew logo A/C with this top: has a tshirt decal")
ENDIF
ENDIF
ELIF (eJbib >= JBIB_FMF_2_0 AND eJbib <= JBIB_FMF_2_15)
OR iDLCJbibCheck = 2
IF eCrewLogo = TATTOO_MP_FM_CREW_A
OR eCrewLogo = TATTOO_MP_FM_CREW_D
// front logo only used if no decal on this jbib
IF GET_TORSO_DECAL_TATTOO_MP(ePedModel, COMP_TYPE_JBIB, eJbib) = INVALID_TATTOO
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PED_COMP, "Cant have front crew logo A/D with this top: has a tshirt decal")
ENDIF
ENDIF
ELIF (eJbib >= JBIB_FMF_4_0 AND eJbib <= JBIB_FMF_4_15)
OR iDLCJbibCheck = 4
IF eCrewLogo = TATTOO_MP_FM_CREW_A
RETURN TRUE
ENDIF
IF eCrewLogo = TATTOO_MP_FM_CREW_C
IF iDLCJbibCheck != 4 OR NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibNameHash, DLC_RESTRICTION_TAG_TAT_DECL, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
ENDIF
ELIF (eJbib >= JBIB_FMF_5_0 AND eJbib <= JBIB_FMF_5_15)
OR iDLCJbibCheck = 05
IF eCrewLogo = TATTOO_MP_FM_CREW_A
RETURN TRUE
ENDIF
ELIF (eJbib >= JBIB_FMF_9_0 AND eJbib <= JBIB_FMF_9_15)
OR iDLCJbibCheck = 09
IF eCrewLogo = TATTOO_MP_FM_CREW_B
RETURN TRUE
ENDIF
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Returns the int value of the tattoo enum used with this jbib
/// iOption - each jbib can have a max of 3 options (small, large, back)
/// this corresponds to the order they will appear in shop menu
FUNC TATTOO_NAME_ENUM GET_TATTOO_FROM_JBIB(MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM eJbib, INT iOption)
IF NOT IS_JBIB_COMPONENT_A_JACKET(ePedModel, eJbib)
IF ePedModel = MP_M_FREEMODE_01
INT iDLCJbibCheck = -1
IF eJbib >= JBIB_FMM_DLC
iDLCJbibCheck = GET_DLC_DRAW_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eJbib, COMP_TYPE_JBIB, 3))
ENDIF
// male
IF (eJbib >= JBIB_FMM_0_0 AND eJbib <= JBIB_FMM_0_15)
OR (eJbib >= JBIB_FMM_1_0 AND eJbib <= JBIB_FMM_1_15)
OR (eJbib >= JBIB_FMM_8_0 AND eJbib <= JBIB_FMM_8_15)
OR iDLCJbibCheck = 0
OR iDLCJbibCheck = 1
OR iDLCJbibCheck = 8
// front logos only used if no decal on this jbib
IF GET_TORSO_DECAL_TATTOO_MP(ePedModel, COMP_TYPE_JBIB, eJbib) = INVALID_TATTOO
// no logo, all 3 options available
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_A
ELIF iOption = 1 RETURN TATTOO_MP_FM_CREW_B
ELIF iOption = 2 RETURN TATTOO_MP_FM_CREW_C
ENDIF
ELSE
// jbib has logo, only back option available
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_C
ENDIF
ENDIF
ELIF (eJbib >= JBIB_FMM_5_0 AND eJbib <= JBIB_FMM_5_15)
OR iDLCJbibCheck = 5
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_D
ELIF iOption = 1 RETURN TATTOO_MP_FM_CREW_E
ELIF iOption = 2 RETURN TATTOO_MP_FM_CREW_F
ENDIF
ELIF (eJbib >= JBIB_FMM_9_0 AND eJbib <= JBIB_FMM_9_15)
OR iDLCJbibCheck = 9
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_A
ELIF iOption = 1 RETURN TATTOO_MP_FM_CREW_C
ENDIF
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
INT iDLCJbibCheck = -1
IF eJbib >= JBIB_FMM_DLC
iDLCJbibCheck = GET_DLC_DRAW_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eJbib, COMP_TYPE_JBIB, 4))
ENDIF
// female
IF (eJbib >= JBIB_FMF_0_0 AND eJbib <= JBIB_FMF_0_15)
OR iDLCJbibCheck = 0
// front logos only used if no decal on this jbib
IF GET_TORSO_DECAL_TATTOO_MP(ePedModel, COMP_TYPE_JBIB, eJbib) = INVALID_TATTOO
// no logo, all 3 options available
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_A
ELIF iOption = 1 RETURN TATTOO_MP_FM_CREW_C
ENDIF
ENDIF
ELIF (eJbib >= JBIB_FMF_2_0 AND eJbib <= JBIB_FMF_2_15)
OR iDLCJbibCheck = 2
// front logos only used if no decal on this jbib
IF GET_TORSO_DECAL_TATTOO_MP(ePedModel, COMP_TYPE_JBIB, eJbib) = INVALID_TATTOO
// no logo, all 3 options available
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_A
ELIF iOption = 1 RETURN TATTOO_MP_FM_CREW_D
ENDIF
ENDIF
ELIF (eJbib >= JBIB_FMF_4_0 AND eJbib <= JBIB_FMF_4_15)
OR iDLCJbibCheck = 4
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_A
ELIF iOption = 1 RETURN TATTOO_MP_FM_CREW_C
ENDIF
ELIF (eJbib >= JBIB_FMF_5_0 AND eJbib <= JBIB_FMF_5_15)
OR iDLCJbibCheck = 5
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_A
ENDIF
ELIF (eJbib >= JBIB_FMF_9_0 AND eJbib <= JBIB_FMF_9_15)
OR iDLCJbibCheck = 9
IF iOption = 0 RETURN TATTOO_MP_FM_CREW_B
ENDIF
ENDIF
ENDIF
ENDIF
RETURN INVALID_TATTOO
ENDFUNC
/// PURPOSE:
/// Looks up the current jbib of the ped passed in, and gets the corresponding crew logo.
/// PARAMS:
/// ePedModel - model of the ped
/// mPed - index to the ped
/// iOption - each jbib can have a max of 3 options (small, large, back)
/// this corresponds to the order they will appear in shop menu
/// RETURNS:
/// the crew logo tattoo that appears at this point in the clothes shop menu for this jbib
FUNC TATTOO_NAME_ENUM GET_TATTOO_FROM_CURRENT_JBIB(MODEL_NAMES ePedModel, PED_INDEX mPed, INT iOption)
PED_COMP_NAME_ENUM eCurrentJbib = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_JBIB)
RETURN GET_TATTOO_FROM_JBIB(ePedModel, eCurrentJbib, iOption)
ENDFUNC
FUNC TATTOO_NAME_ENUM GET_CURRENT_CREW_LOGO_TATTOO()
INT iSlot = g_iPedComponentSlot
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, iSlot)
RETURN TATTOO_MP_FM_CREW_A
ENDIF
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, iSlot)
RETURN TATTOO_MP_FM_CREW_B
ENDIF
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, iSlot)
RETURN TATTOO_MP_FM_CREW_C
ENDIF
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, iSlot)
RETURN TATTOO_MP_FM_CREW_D
ENDIF
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, iSlot)
RETURN TATTOO_MP_FM_CREW_E
ENDIF
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, iSlot)
RETURN TATTOO_MP_FM_CREW_F
ENDIF
RETURN INVALID_TATTOO
ENDFUNC
FUNC BOOL HANDLE_CREW_LOGO_TATTOOS(MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM eNonJacketJbib)
TATTOO_NAME_ENUM eCrewLogo
eCrewLogo = GET_CURRENT_CREW_LOGO_TATTOO()
IF eCrewLogo <> INVALID_TATTOO
CPRINTLN(DEBUG_PED_COMP, "Player has a current crew logo tattoo: ", eCrewLogo)
IF NOT CAN_JBIB_HAVE_CREW_LOGO(ePedModel, eNonJacketJbib, eCrewLogo)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "HANDLE_CREW_LOGO_TATTOOS : Crew logo not compatible with JBIB, removing")
//REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(GET_HASH_KEY("crewLogo"), mPed)
SET_MP_TATTOO_CURRENT(eCrewLogo, FALSE, g_iPedComponentSlot)
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
#ENDIF
PROC ADD_SECONDARY_PED_DECORATION_FROM_HASHES(PED_INDEX pedID, INT iCollection, INT iPreset)
SWITCH iCollection
#IF FEATURE_FIXER
CASE HASH("mpSecurity_overlays")
SWITCH iPreset
CASE HASH("MP_Security_Tee_000_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSecurity_overlays"), HASH("MP_Security_Tee_001_M")) BREAK
CASE HASH("MP_Security_Tee_000_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSecurity_overlays"), HASH("MP_Security_Tee_001_F")) BREAK
ENDSWITCH
BREAK
#ENDIF
#IF FEATURE_TUNER
CASE HASH("mpTuner_overlays")
SWITCH iPreset
CASE HASH("MP_Tuner_Tee_000_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_001_M")) ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_M")) BREAK
CASE HASH("MP_Tuner_Tee_002_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_M")) BREAK
CASE HASH("MP_Tuner_Tee_003_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_004_M")) ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_M")) BREAK
CASE HASH("MP_Tuner_Tee_005_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_M")) BREAK
CASE HASH("MP_Tuner_Tee_006_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_M")) BREAK
CASE HASH("MP_Tuner_Tee_008_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_009_M")) BREAK
CASE HASH("MP_Tuner_Tee_010_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_009_M")) BREAK
CASE HASH("MP_Tuner_Tee_000_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_001_F")) ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_F")) BREAK
CASE HASH("MP_Tuner_Tee_002_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_F")) BREAK
CASE HASH("MP_Tuner_Tee_003_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_004_F")) ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_F")) BREAK
CASE HASH("MP_Tuner_Tee_005_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_F")) BREAK
CASE HASH("MP_Tuner_Tee_006_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_007_F")) BREAK
CASE HASH("MP_Tuner_Tee_008_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_009_F")) BREAK
CASE HASH("MP_Tuner_Tee_010_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpTuner_overlays"), HASH("MP_Tuner_Tee_009_F")) BREAK
ENDSWITCH
BREAK
#ENDIF
CASE HASH("mpHeist4_overlays")
SWITCH iPreset
CASE HASH("MP_Heist4_Tee_039_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_040_M")) BREAK
CASE HASH("MP_Heist4_Tee_041_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_042_M")) BREAK
CASE HASH("MP_Heist4_Tee_043_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_044_M")) BREAK
CASE HASH("MP_Heist4_Tee_049_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_050_M")) BREAK
CASE HASH("MP_Heist4_Tee_051_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_052_M")) BREAK
CASE HASH("MP_Heist4_Tee_055_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_056_M")) BREAK
CASE HASH("MP_Heist4_Tee_057_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_058_M")) BREAK
CASE HASH("MP_Heist4_Tee_059_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_060_M")) BREAK
CASE HASH("MP_Heist4_Tee_061_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_062_M")) BREAK
CASE HASH("MP_Heist4_Tee_063_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_064_M")) BREAK
CASE HASH("MP_Heist4_Tee_065_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_066_M")) BREAK
CASE HASH("MP_Heist4_Tee_039_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_040_F")) BREAK
CASE HASH("MP_Heist4_Tee_041_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_042_F")) BREAK
CASE HASH("MP_Heist4_Tee_043_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_044_F")) BREAK
CASE HASH("MP_Heist4_Tee_049_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_050_F")) BREAK
CASE HASH("MP_Heist4_Tee_051_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_052_F")) BREAK
CASE HASH("MP_Heist4_Tee_055_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_056_F")) BREAK
CASE HASH("MP_Heist4_Tee_057_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_058_F")) BREAK
CASE HASH("MP_Heist4_Tee_059_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_060_F")) BREAK
CASE HASH("MP_Heist4_Tee_061_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_062_F")) BREAK
CASE HASH("MP_Heist4_Tee_063_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_064_F")) BREAK
CASE HASH("MP_Heist4_Tee_065_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist4_overlays"), HASH("MP_Heist4_Tee_066_F")) BREAK
ENDSWITCH
BREAK
CASE HASH("mpVinewood_overlays")
SWITCH iPreset
CASE HASH("CasinoTop_M_0") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_000_M")) BREAK
CASE HASH("CasinoTop_M_1") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_001_M")) BREAK
CASE HASH("CasinoTop_M_2") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_001_M")) BREAK
CASE HASH("CasinoTop_M_3") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_002_M")) BREAK
CASE HASH("CasinoTop_M_4") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_002_M")) BREAK
CASE HASH("CasinoTop_M_5") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_003_M")) BREAK
CASE HASH("CasinoTop_M_6") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_003_M")) BREAK
CASE HASH("CasinoTop_M_7") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_004_M")) BREAK
CASE HASH("CasinoTop_M_8") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_005_M")) BREAK
CASE HASH("CasinoTop_M_9") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_006_M")) BREAK
CASE HASH("CasinoTop_M_10") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_006_M")) BREAK
CASE HASH("CasinoTop_M_11") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_007_M")) BREAK
CASE HASH("CasinoTop_M_12") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_008_M")) BREAK
CASE HASH("CasinoTop_M_13") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_009_M")) BREAK
CASE HASH("CasinoTop_M_14") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_010_M")) BREAK
CASE HASH("CasinoTop_M_15") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_011_M")) BREAK
CASE HASH("CasinoTop_M_16") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_012_M")) BREAK
CASE HASH("CasinoTop_M_17") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_013_M")) BREAK
CASE HASH("CasinoTop_M_18") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_014_M")) BREAK
CASE HASH("CasinoTop_M_19") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_015_M")) BREAK
CASE HASH("CasinoTop_M_20") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_016_M")) BREAK
CASE HASH("CasinoTop_M_21") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_017_M")) BREAK
CASE HASH("CasinoTop_M_22") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_017_M")) BREAK
CASE HASH("CasinoTop_M_23") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_018_M")) BREAK
CASE HASH("CasinoTop_M_24") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_019_M")) BREAK
CASE HASH("CasinoTop_M_25") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_019_M")) BREAK
CASE HASH("CasinoTop_M_26") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_020_M")) BREAK
CASE HASH("CasinoTop_M_27") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_021_M")) BREAK
CASE HASH("CasinoTop_M_28") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_021_M")) BREAK
CASE HASH("CasinoTop_M_29") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_022_M")) BREAK
CASE HASH("CasinoTop_M_30") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_022_M")) BREAK
CASE HASH("CasinoTop_M_31") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_023_M")) BREAK
CASE HASH("CasinoTop_M_32") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_023_M")) BREAK
CASE HASH("CasinoTop_M_33") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_024_M")) BREAK
CASE HASH("CasinoTop_M_34") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_024_M")) BREAK
CASE HASH("CasinoTop_M_35") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_025_M")) BREAK
CASE HASH("CasinoTop_M_36") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_025_M")) BREAK
CASE HASH("CasinoTop_M_37") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_026_M")) BREAK
CASE HASH("CasinoTop_M_38") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_026_M")) BREAK
CASE HASH("CasinoTop_M_39") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_027_M")) BREAK
CASE HASH("CasinoTop_M_40") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_027_M")) BREAK
CASE HASH("CasinoTop_M_41") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_028_M")) BREAK
CASE HASH("CasinoTop_M_42") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_028_M")) BREAK
CASE HASH("CasinoTop_M_43") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_029_M")) BREAK
CASE HASH("CasinoTop_M_44") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_029_M")) BREAK
ENDSWITCH
SWITCH iPreset
CASE HASH("CasinoTop_F_0") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_000_F")) BREAK
CASE HASH("CasinoTop_F_1") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_001_F")) BREAK
CASE HASH("CasinoTop_F_2") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_001_F")) BREAK
CASE HASH("CasinoTop_F_3") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_002_F")) BREAK
CASE HASH("CasinoTop_F_4") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_002_F")) BREAK
CASE HASH("CasinoTop_F_5") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_003_F")) BREAK
CASE HASH("CasinoTop_F_6") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_003_F")) BREAK
CASE HASH("CasinoTop_F_7") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_004_F")) BREAK
CASE HASH("CasinoTop_F_8") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_005_F")) BREAK
CASE HASH("CasinoTop_F_9") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_006_F")) BREAK
CASE HASH("CasinoTop_F_10") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_006_F")) BREAK
CASE HASH("CasinoTop_F_11") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_007_F")) BREAK
CASE HASH("CasinoTop_F_12") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_008_F")) BREAK
CASE HASH("CasinoTop_F_13") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_009_F")) BREAK
CASE HASH("CasinoTop_F_14") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_010_F")) BREAK
CASE HASH("CasinoTop_F_15") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_011_F")) BREAK
CASE HASH("CasinoTop_F_16") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_012_F")) BREAK
CASE HASH("CasinoTop_F_17") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_013_F")) BREAK
CASE HASH("CasinoTop_F_18") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_014_F")) BREAK
CASE HASH("CasinoTop_F_19") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_015_F")) BREAK
CASE HASH("CasinoTop_F_20") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_016_F")) BREAK
CASE HASH("CasinoTop_F_21") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_017_F")) BREAK
CASE HASH("CasinoTop_F_22") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_017_F")) BREAK
CASE HASH("CasinoTop_F_23") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_018_F")) BREAK
CASE HASH("CasinoTop_F_24") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_019_F")) BREAK
CASE HASH("CasinoTop_F_25") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_019_F")) BREAK
CASE HASH("CasinoTop_F_26") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_020_F")) BREAK
CASE HASH("CasinoTop_F_27") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_021_F")) BREAK
CASE HASH("CasinoTop_F_28") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_021_F")) BREAK
CASE HASH("CasinoTop_F_29") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_022_F")) BREAK
CASE HASH("CasinoTop_F_30") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_022_F")) BREAK
CASE HASH("CasinoTop_F_31") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_023_F")) BREAK
CASE HASH("CasinoTop_F_32") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_023_F")) BREAK
CASE HASH("CasinoTop_F_33") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_024_F")) BREAK
CASE HASH("CasinoTop_F_34") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_024_F")) BREAK
CASE HASH("CasinoTop_F_35") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_025_F")) BREAK
CASE HASH("CasinoTop_F_36") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_025_F")) BREAK
CASE HASH("CasinoTop_F_37") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_026_F")) BREAK
CASE HASH("CasinoTop_F_38") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_026_F")) BREAK
CASE HASH("CasinoTop_F_39") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_027_F")) BREAK
CASE HASH("CasinoTop_F_40") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_027_F")) BREAK
CASE HASH("CasinoTop_F_41") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_028_F")) BREAK
CASE HASH("CasinoTop_F_42") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_028_F")) BREAK
CASE HASH("CasinoTop_F_43") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_029_F")) BREAK
CASE HASH("CasinoTop_F_44") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpVinewood_overlays"), HASH("MP_Vinewood_Tee_029_F")) BREAK
ENDSWITCH
BREAK
CASE HASH("mpBattle_overlays")
SWITCH iPreset
CASE HASH("MP_Battle_Clothing_000_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpBattle_overlays"), HASH("MP_Battle_Clothing_001_M")) BREAK
ENDSWITCH
SWITCH iPreset
CASE HASH("MP_Battle_Clothing_000_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpBattle_overlays"), HASH("MP_Battle_Clothing_001_F")) BREAK
ENDSWITCH
BREAK
CASE HASH("mpSmuggler_overlays")
SWITCH iPreset
CASE HASH("M_TankTop_Smug_5_3_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_000_M")) BREAK
CASE HASH("M_TankTop_Smug_5_17_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_001_M")) BREAK
CASE HASH("M_TankTop_Smug_5_10_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_002_M")) BREAK
CASE HASH("M_TankTop_Smug_5_11_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_003_M")) BREAK
CASE HASH("M_TankTop_Smug_5_12_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_004_M")) BREAK
CASE HASH("M_TankTop_Smug_5_13_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_005_M")) BREAK
CASE HASH("M_TankTop_Smug_5_20_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_006_M")) BREAK
CASE HASH("M_TankTop_Smug_5_21_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_007_M")) BREAK
CASE HASH("M_TankTop_Smug_5_23_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_008_M")) BREAK
CASE HASH("M_TankTop_Smug_5_22_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_009_M")) BREAK
CASE HASH("M_TankTop_Smug_5_5_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_010_M")) BREAK
CASE HASH("M_TankTop_Smug_5_18_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_011_M")) BREAK
CASE HASH("M_TankTop_Smug_5_0_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_012_M")) BREAK
CASE HASH("M_TankTop_Smug_5_3_b") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_013_M")) BREAK
CASE HASH("M_TankTop_Smug_5_25_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_014_M")) BREAK
CASE HASH("M_TankTop_Smug_5_7_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_015_M")) BREAK
CASE HASH("M_TankTop_Smug_5_4_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_016_M")) BREAK
CASE HASH("M_TankTop_Smug_5_1_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_017_M")) BREAK
CASE HASH("M_TankTop_Smug_5_9_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_018_M")) BREAK
ENDSWITCH
SWITCH iPreset
CASE HASH("F_TankTop_Smug_5_3_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_000_F")) BREAK
CASE HASH("F_TankTop_Smug_5_17_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_001_F")) BREAK
CASE HASH("F_TankTop_Smug_5_10_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_002_F")) BREAK
CASE HASH("F_TankTop_Smug_5_11_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_003_F")) BREAK
CASE HASH("F_TankTop_Smug_5_12_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_004_F")) BREAK
CASE HASH("F_TankTop_Smug_5_13_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_005_F")) BREAK
CASE HASH("F_TankTop_Smug_5_20_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_006_F")) BREAK
CASE HASH("F_TankTop_Smug_5_21_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_007_F")) BREAK
CASE HASH("F_TankTop_Smug_5_23_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_008_F")) BREAK
CASE HASH("F_TankTop_Smug_5_22_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_009_F")) BREAK
CASE HASH("F_TankTop_Smug_5_5_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_010_F")) BREAK
CASE HASH("F_TankTop_Smug_5_18_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_011_F")) BREAK
CASE HASH("F_TankTop_Smug_5_0_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_012_F")) BREAK
CASE HASH("F_TankTop_Smug_5_3_b") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_013_F")) BREAK
CASE HASH("F_TankTop_Smug_5_25_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_014_F")) BREAK
CASE HASH("F_TankTop_Smug_5_7_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_015_F")) BREAK
CASE HASH("F_TankTop_Smug_5_4_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_016_F")) BREAK
CASE HASH("F_TankTop_Smug_5_1_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_017_F")) BREAK
CASE HASH("F_TankTop_Smug_5_9_a") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpSmuggler_overlays"), HASH("MP_Smuggler_Graphic_018_F")) BREAK
ENDSWITCH
BREAK
CASE HASH("mpGunrunning_overlays")
SWITCH iPreset
CASE HASH("MP_Gunrunning_Award_020_M_ALT") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpGunrunning_overlays"), HASH("MP_Gunrunning_Award_020_M")) BREAK
CASE HASH("MP_Gunrunning_Award_020_F_ALT") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpGunrunning_overlays"), HASH("MP_Gunrunning_Award_020_F")) BREAK
ENDSWITCH
BREAK
CASE HASH("mpExecutive_overlays")
SWITCH iPreset
CASE HASH("MP_Securoserv_000_Mb") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpExecutive_overlays"), HASH("MP_Securoserv_000_M")) BREAK
CASE HASH("MP_Securoserv_000_Fb") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpExecutive_overlays"), HASH("MP_Securoserv_000_F")) BREAK
ENDSWITCH
BREAK
CASE HASH("mpHeist_overlays")
SWITCH iPreset
CASE HASH("MP_Elite_M_Tshirt_1") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist_overlays"), HASH("MP_Elite_M_Tshirt_2")) BREAK
CASE HASH("MP_Elite_F_Tshirt_1") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpHeist_overlays"), HASH("MP_Elite_F_Tshirt_2")) BREAK
ENDSWITCH
BREAK
CASE HASH("mpLuxe2_overlays")
SWITCH iPreset
CASE HASH("MP_Luxe_Tat_029_M") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpLuxe2_overlays"), HASH("MP_Luxe_Tat_030_M")) ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpLuxe2_overlays"), HASH("MP_Luxe_Tat_031_M")) BREAK
CASE HASH("MP_Luxe_Tat_029_F") ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpLuxe2_overlays"), HASH("MP_Luxe_Tat_030_F")) ADD_PED_DECORATION_FROM_HASHES(pedID, HASH("mpLuxe2_overlays"), HASH("MP_Luxe_Tat_031_F")) BREAK
ENDSWITCH
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE:
/// Removes all tattoos and then re-equips any tattoos marked as current.
/// (used for equipping hair and spawn outfits in MP)
PROC UPDATE_TATOOS_MP(PED_INDEX mPed,Bool bBlockTorsoDecals = false, BOOL bComingFromCharacterCreator = false, INT iTShirtDecalHashOverride = -1)
IF NOT IS_PED_INJURED(mPed)
INT iSlot = g_iPedComponentSlot
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), ": UPDATE_TATOOS_MP(",
PICK_STRING(bBlockTorsoDecals, "bBlockTorsoDecals=TRUE", "bBlockTorsoDecals=FALSE"), ", ",
PICK_STRING(bComingFromCharacterCreator, "bComingFromCharacterCreator=TRUE", "bComingFromCharacterCreator=FALSE"),
", iTShirtDecalHashOverride:", iTShirtDecalHashOverride,
", iSlot:", iSlot, ")")
#IF NOT USE_TU_CHANGES
CLEAR_PED_DECORATIONS(mPed)
#ENDIF
#IF USE_TU_CHANGES
CLEAR_PED_DECORATIONS_LEAVE_SCARS(mPed)
#ENDIF
TATTOO_DATA_STRUCT sTattooData
TATTOO_FACTION_ENUM eFaction = GET_TATTOO_FACTION_FOR_PED(mPed)
#IF NOT USE_TU_CHANGES
unused_parameter(bBlockTorsoDecals)
#ENDIF
#IF USE_TU_CHANGES
BOOL bBlockChestTattoos = SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT(mPed)
BOOL bBlockCrewEmblems = SHOULD_CREW_EMBLEMS_BE_BLOCKED_FOR_OUTFIT(mPed)
BOOL bBlockBackTattoos = SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT(mPed, iTShirtDecalHashOverride)
// If we're blocking torsodecal also block the crew.bug: 2196640 / 2186449
IF bBlockTorsoDecals
bBlockCrewEmblems = TRUE
ENDIF
// Always apply crew emblem if option selected in character creator (B* 2218811)
IF bComingFromCharacterCreator
bBlockCrewEmblems = FALSE
ENDIF
#ENDIF
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("sc_ExtraTattooDebug")
PRINTLN("sc_ExtraTattooDebug: UPDATE_TATOOS_MP: bBlockCrewEmblems=", bBlockCrewEmblems, ", bBlockBackTattoos=", bBlockBackTattoos, ", bBlockChestTattoos=", bBlockChestTattoos, ", bBlockTorsoDecals=", bBlockTorsoDecals)
DEBUG_PRINTCALLSTACK()
ENDIF
#ENDIF
INT i
REPEAT MAX_NUMBER_OF_TATTOOS i
IF IS_MP_TATTOO_CURRENT(INT_TO_ENUM(TATTOO_NAME_ENUM, i), iSlot)
IF GET_TATTOO_DATA(sTattooData, INT_TO_ENUM(TATTOO_NAME_ENUM, i), eFaction, mPed)
#IF USE_TU_CHANGES
IF IS_TATTOO_SAFE_TO_APPLY(mPed, sTattooData.sLabel, INT_TO_ENUM(TATTOO_NAME_ENUM, i), sTattooData.iCollection, sTattooData.iUpgradeGroup, bBlockChestTattoos, bBlockCrewEmblems, bBlockTorsoDecals, bBlockBackTattoos)
#ENDIF
ADD_PED_DECORATION_FROM_HASHES(mPed, sTattooData.iCollection, sTattooData.iPreset)
#IF USE_TU_CHANGES
ENDIF
#ENDIF
ENDIF
ENDIF
ENDREPEAT
#IF USE_TU_CHANGES
// Apply fuzz overlay that was added for Beach Bum
IF IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_HO_FUZZ, iSlot)
IF GET_PED_DECORATION_ZONE_FROM_HASHES(HASH("mpBeach_overlays"), HASH("FM_Hair_Fuzz")) != PDZ_INVALID
ADD_PED_DECORATION_FROM_HASHES(mPed, HASH("mpBeach_overlays"), HASH("FM_Hair_Fuzz"))
ENDIF
ENDIF
// Apply the DLC tats.
INT iDLCIndex
INT iDLCCount = GET_NUM_TATTOO_SHOP_DLC_ITEMS(eFaction)
sTattooShopItemValues sDLCTattooData
TATTOO_NAME_ENUM eDLCTattoo
REPEAT iDLCCount iDLCIndex
IF GET_TATTOO_SHOP_DLC_ITEM_DATA(eFaction, iDLCIndex, sDLCTattooData)
IF NOT IS_CONTENT_ITEM_LOCKED(sDLCTattooData.m_lockHash)
eDLCTattoo = INT_TO_ENUM(TATTOO_NAME_ENUM, ENUM_TO_INT(TATTOO_MP_FM_DLC)+iDLCIndex)
IF IS_MP_TATTOO_CURRENT(eDLCTattoo, iSlot)
IF IS_TATTOO_SAFE_TO_APPLY(mPed, sDLCTattooData.Label, eDLCTattoo, sDLCTattooData.Collection, sDLCTattooData.UpdateGroup, bBlockChestTattoos, bBlockCrewEmblems, bBlockTorsoDecals, bBlockBackTattoos)
IF NOT IS_DLC_OVERLAY_LOCKED_BY_SCRIPT(sDLCTattooData.Collection, sDLCTattooData.Preset, eDLCTattoo)
ADD_PED_DECORATION_FROM_HASHES(mPed, sDLCTattooData.Collection, sDLCTattooData.Preset)
ADD_SECONDARY_PED_DECORATION_FROM_HASHES(mPed, sDLCTattooData.Collection, sDLCTattooData.Preset)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDREPEAT
#ENDIF
ENDIF
ENDPROC
PROC SET_MP_TATTOOS_FROM_DATA(PED_INDEX mPed, INT &iCurrentTattooData[NUMBER_OF_CURRENT_TATTOO_STATS],BOOL bBlockTorsoDecals = false, INT iTShirtDecalHashOverride = -1)
IF NOT IS_PED_INJURED(mPed)
unused_parameter(bBlockTorsoDecals)
#IF IS_DEBUG_BUILD
INT iPassedTat
PRINTLN("SET_MP_TATTOOS_FROM_DATA - Details follow:............")
FOR iPassedTat = 0 TO NUMBER_OF_CURRENT_TATTOO_STATS-1 STEP 1
PRINTLN("SET_MP_TATTOOS_FROM_DATA - iCurrentTattooData[", iPassedTat, "] = ", iCurrentTattooData[iPassedTat])
ENDFOR
#ENDIF
CPRINTLN(DEBUG_PED_COMP, "SET_MP_TATTOOS_FROM_DATA called")
#IF NOT USE_TU_CHANGES
CLEAR_PED_DECORATIONS(mPed)
#ENDIF
#IF USE_TU_CHANGES
CLEAR_PED_DECORATIONS_LEAVE_SCARS(mPed)
#ENDIF
TATTOO_DATA_STRUCT sTattooData
TATTOO_FACTION_ENUM eFaction = GET_TATTOO_FACTION_FOR_PED(mPed)
#IF USE_TU_CHANGES
BOOL bBlockChestTattoos = SHOULD_CHEST_TATTOOS_BE_BLOCKED_FOR_OUTFIT(mPed)
BOOL bBlockCrewEmblems = SHOULD_CREW_EMBLEMS_BE_BLOCKED_FOR_OUTFIT(mPed)
BOOL bBlockBackTattoos = SHOULD_BACK_TATTOOS_BE_BLOCKED_FOR_OUTFIT(mPed, iTShirtDecalHashOverride)
// If we're blocking torsodecal also block the crew.bug: 2196640 / 2186449
if bBlockTorsoDecals
bBlockCrewEmblems = true
ENDIF
#ENDIF
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("sc_ExtraTattooDebug")
PRINTLN("sc_ExtraTattooDebug: SET_MP_TATTOOS_FROM_DATA: bBlockCrewEmblems=", bBlockCrewEmblems, ", bBlockBackTattoos=", bBlockBackTattoos, ", bBlockChestTattoos=", bBlockChestTattoos, ", bBlockTorsoDecals=", bBlockTorsoDecals)
DEBUG_PRINTCALLSTACK()
ENDIF
#ENDIF
INT i
REPEAT MAX_NUMBER_OF_TATTOOS i
IF IS_BIT_SET(iCurrentTattooData[(i/32)], (i%32))
IF GET_TATTOO_DATA(sTattooData, INT_TO_ENUM(TATTOO_NAME_ENUM, i), eFaction, mPed)
#IF USE_TU_CHANGES
IF IS_TATTOO_SAFE_TO_APPLY(mPed, sTattooData.sLabel, INT_TO_ENUM(TATTOO_NAME_ENUM, i), sTattooData.iCollection, sTattooData.iUpgradeGroup, bBlockChestTattoos, bBlockCrewEmblems, bBlockTorsoDecals, bBlockBackTattoos)
#ENDIF
ADD_PED_DECORATION_FROM_HASHES_IN_CORONA(mPed, sTattooData.iCollection, sTattooData.iPreset)
#IF USE_TU_CHANGES
ENDIF
#ENDIF
ENDIF
ENDIF
ENDREPEAT
#IF USE_TU_CHANGES
// Apply fuzz overlay that was added for Beach Bum
IF IS_BIT_SET(iCurrentTattooData[(ENUM_TO_INT(TATTOO_MP_FM_HO_FUZZ)/32)], (ENUM_TO_INT(TATTOO_MP_FM_HO_FUZZ)%32))
IF GET_PED_DECORATION_ZONE_FROM_HASHES(HASH("mpBeach_overlays"), HASH("FM_Hair_Fuzz")) != PDZ_INVALID
ADD_PED_DECORATION_FROM_HASHES_IN_CORONA(mPed, HASH("mpBeach_overlays"), HASH("FM_Hair_Fuzz"))
ENDIF
ENDIF
// Apply the DLC tats.
INT iDLCIndex
INT iDLCCount = GET_NUM_TATTOO_SHOP_DLC_ITEMS(eFaction)
sTattooShopItemValues sDLCTattooData
TATTOO_NAME_ENUM eDLCTattoo
REPEAT iDLCCount iDLCIndex
IF GET_TATTOO_SHOP_DLC_ITEM_DATA(eFaction, iDLCIndex, sDLCTattooData)
IF NOT IS_CONTENT_ITEM_LOCKED(sDLCTattooData.m_lockHash)
eDLCTattoo = INT_TO_ENUM(TATTOO_NAME_ENUM, ENUM_TO_INT(TATTOO_MP_FM_DLC)+iDLCIndex)
IF (ENUM_TO_INT(eDLCTattoo)/32) >= COUNT_OF(iCurrentTattooData)
// assert
SCRIPT_ASSERT("SET_MP_TATTOOS_FROM_DATA NUMBER_OF_CURRENT_TATTOO_STATS is low. You need to add new bitsets for Tattoos and bump up NUMBER_OF_CURRENT_TATTOO_STATS to match number of tattoo bitsets")
ELSE
IF IS_BIT_SET(iCurrentTattooData[(ENUM_TO_INT(eDLCTattoo)/32)], (ENUM_TO_INT(eDLCTattoo)%32))
IF IS_TATTOO_SAFE_TO_APPLY(mPed, sDLCTattooData.Label, eDLCTattoo, sDLCTattooData.Collection, sDLCTattooData.UpdateGroup, bBlockChestTattoos, bBlockCrewEmblems, bBlockTorsoDecals, bBlockBackTattoos)
ADD_PED_DECORATION_FROM_HASHES_IN_CORONA(mPed, sDLCTattooData.Collection, sDLCTattooData.Preset)
ADD_SECONDARY_PED_DECORATION_FROM_HASHES(mPed, sDLCTattooData.Collection, sDLCTattooData.Preset)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDREPEAT
#ENDIF
ENDIF
ENDPROC
/// PURPOSE: Sets tattoos in an upgrade group as not current
PROC REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(INT iUpgradeGroup, PED_INDEX mPed)
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("sc_ExtraTattooDebug")
IF iUpgradeGroup = HASH("crewLogo")
PRINTLN("sc_ExtraTattooDebug: REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(iUpgradeGroup=crewLogo)")
ELIF iUpgradeGroup = HASH("torsoDecal")
PRINTLN("sc_ExtraTattooDebug: REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(iUpgradeGroup=torsoDecal)")
ELIF iUpgradeGroup = HASH("hairOverlay")
PRINTLN("sc_ExtraTattooDebug: REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(iUpgradeGroup=hairOverlay)")
ELSE
PRINTLN("sc_ExtraTattooDebug: REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(iUpgradeGroup=", iUpgradeGroup, ")")
ENDIF
DEBUG_PRINTCALLSTACK()
ENDIF
#ENDIF
IF NOT IS_PED_INJURED(mPed)
TATTOO_DATA_STRUCT sTattooData
TATTOO_FACTION_ENUM eFaction = GET_TATTOO_FACTION_FOR_PED(mPed)
IF iUpgradeGroup != 0
#IF USE_TU_CHANGES
IF eFaction = TATTOO_MP_FM
OR eFaction = TATTOO_MP_FM_F
IF iUpgradeGroup = HASH("crewLogo")
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, FALSE, g_iPedComponentSlot)
EXIT
ELIF iUpgradeGroup = HASH("torsoDecal")
IF eFaction = TATTOO_MP_FM
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_1, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_2, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_3, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_4, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_5, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_6, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_9, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_13, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_14, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_15, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_16, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_19, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_20, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_36, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_17, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_18, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_46, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MTD_45, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TSHIRT_TRANS_MP_FM_REDSKULL, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TSHIRT_TRANS_MP_FM_LSBELLE, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TSHIRT_TRANS_MP_FM_ROCKSTAR, FALSE, g_iPedComponentSlot)
// Remove DLC torso overlays...
INT iDLCIndex
INT iDLCCount = GET_NUM_TATTOO_SHOP_DLC_ITEMS(TATTOO_MP_FM)
sTattooShopItemValues sDLCTattooData
REPEAT iDLCCount iDLCIndex
IF GET_TATTOO_SHOP_DLC_ITEM_DATA(TATTOO_MP_FM, iDLCIndex, sDLCTattooData)
IF sDLCTattooData.UpdateGroup = HASH("torsoDecal")
SET_MP_TATTOO_CURRENT(INT_TO_ENUM(TATTOO_NAME_ENUM, ENUM_TO_INT(TATTOO_MP_FM_DLC)+iDLCIndex), FALSE, g_iPedComponentSlot)
ENDIF
ENDIF
ENDREPEAT
ELSE
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_27, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_28, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_34, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_36, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_48, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_52, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_53, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_54, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_55, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_56, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_58, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_67, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_68, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FTD_51, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TSHIRT_TRANS_MP_FM_REDSKULL, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TSHIRT_TRANS_MP_FM_LSBELLE, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TSHIRT_TRANS_MP_FM_ROCKSTAR, FALSE, g_iPedComponentSlot)
// Remove DLC torso overlays...
INT iDLCIndex
INT iDLCCount = GET_NUM_TATTOO_SHOP_DLC_ITEMS(TATTOO_MP_FM_F)
sTattooShopItemValues sDLCTattooData
REPEAT iDLCCount iDLCIndex
IF GET_TATTOO_SHOP_DLC_ITEM_DATA(TATTOO_MP_FM_F, iDLCIndex, sDLCTattooData)
IF sDLCTattooData.UpdateGroup = HASH("torsoDecal")
SET_MP_TATTOO_CURRENT(INT_TO_ENUM(TATTOO_NAME_ENUM, ENUM_TO_INT(TATTOO_MP_FM_DLC)+iDLCIndex), FALSE, g_iPedComponentSlot)
ENDIF
ENDIF
ENDREPEAT
ENDIF
ELIF iUpgradeGroup = HASH("hairOverlay")
IF eFaction = TATTOO_MP_FM
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_1A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_1B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_1C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_1D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_1E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_LONG_A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_LONG_B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_LONG_C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_LONG_D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_LONG_E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_3A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_3B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_3C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_3D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_3E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_6A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_6B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_6C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_6D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_6E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_8A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_8B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_8C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_8D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_MHO_8E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_HO_FUZZ, FALSE, g_iPedComponentSlot)
// Remove DLC hair overlays...
INT iDLCIndex
INT iDLCCount = GET_NUM_TATTOO_SHOP_DLC_ITEMS(TATTOO_MP_FM)
sTattooShopItemValues sDLCTattooData
REPEAT iDLCCount iDLCIndex
IF GET_TATTOO_SHOP_DLC_ITEM_DATA(TATTOO_MP_FM, iDLCIndex, sDLCTattooData)
IF sDLCTattooData.UpdateGroup = HASH("hairOverlay")
SET_MP_TATTOO_CURRENT(INT_TO_ENUM(TATTOO_NAME_ENUM, ENUM_TO_INT(TATTOO_MP_FM_DLC)+iDLCIndex), FALSE, g_iPedComponentSlot)
ENDIF
ENDIF
ENDREPEAT
ELSE
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_LONG_A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_LONG_B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_LONG_C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_LONG_D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_LONG_E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_3A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_3B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_3C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_3D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_3E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_5A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_5B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_5C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_5D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_5E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_6A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_6B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_6C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_6D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_6E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_13A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_13B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_13C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_13D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_13E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_14A, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_14B, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_14C, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_14D, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_FHO_14E, FALSE, g_iPedComponentSlot)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_HO_FUZZ, FALSE, g_iPedComponentSlot)
// Remove DLC hair overlays...
INT iDLCIndex
INT iDLCCount = GET_NUM_TATTOO_SHOP_DLC_ITEMS(TATTOO_MP_FM_F)
sTattooShopItemValues sDLCTattooData
REPEAT iDLCCount iDLCIndex
IF GET_TATTOO_SHOP_DLC_ITEM_DATA(TATTOO_MP_FM_F, iDLCIndex, sDLCTattooData)
IF sDLCTattooData.UpdateGroup = HASH("hairOverlay")
SET_MP_TATTOO_CURRENT(INT_TO_ENUM(TATTOO_NAME_ENUM, ENUM_TO_INT(TATTOO_MP_FM_DLC)+iDLCIndex), FALSE, g_iPedComponentSlot)
ENDIF
ENDIF
ENDREPEAT
ENDIF
EXIT
ENDIF
ENDIF
#ENDIF
INT i
REPEAT MAX_NUMBER_OF_TATTOOS i
IF GET_TATTOO_DATA(sTattooData, INT_TO_ENUM(TATTOO_NAME_ENUM, i), eFaction, mPed)
IF sTattooData.iUpgradeGroup = iUpgradeGroup
SET_MP_TATTOO_CURRENT(sTattooData.eEnum, FALSE, g_iPedComponentSlot)
//CPRINTLN(DEBUG_PED_COMP, "Removing MP tattoo: ", sTattooData.eEnum)
ENDIF
ENDIF
ENDREPEAT
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Temp proc to give the player ped a tattoo
/// NOTE: This does not add it to the saved globals
PROC GIVE_PED_TEMP_TATTOO_MP(PED_INDEX pedID, TATTOO_NAME_ENUM eTattoo, BOOL bPreview = FALSE)
IF NOT IS_PED_INJURED(pedID)
IF eTattoo != INVALID_TATTOO
TATTOO_FACTION_ENUM eFaction = GET_TATTOO_FACTION_FOR_PED(pedID)
TATTOO_DATA_STRUCT sTattooData
// Do not give temp tattoo if we already have it otherwise it will assert!
IF NOT IS_MP_TATTOO_CURRENT(eTattoo)
OR bPreview
IF GET_TATTOO_DATA(sTattooData, eTattoo, eFaction, pedID)
//CPRINTLN(DEBUG_PED_COMP, "GIVE_PED_TEMP_TATTOO: ")
//CPRINTLN(DEBUG_PED_COMP, "...enum = ", ENUM_TO_INT(eTattoo))
//CPRINTLN(DEBUG_PED_COMP, "...collection = ", sTattooData.iCollection)
//CPRINTLN(DEBUG_PED_COMP, "...preset = ", sTattooData.iPreset)
//CPRINTLN(DEBUG_PED_COMP, "...label = ", sTattooData.sLabel)
//CPRINTLN(DEBUG_PED_COMP, "...name = ", GET_STRING_FROM_TEXT_FILE(sTattooData.sLabel))
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("sc_ExtraTattooDebug")
PRINTLN("sc_ExtraTattooDebug: GIVE_PED_TEMP_TATTOO_MP: iCollection=", sTattooData.iCollection, ", sTattooData.iPreset=", sTattooData.iPreset)
DEBUG_PRINTCALLSTACK()
ENDIF
#ENDIF
ADD_PED_DECORATION_FROM_HASHES(pedID, sTattooData.iCollection, sTattooData.iPreset)
ADD_SECONDARY_PED_DECORATION_FROM_HASHES(pedID, sTattooData.iCollection, sTattooData.iPreset)
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Equips any torso decals for this torso (jbib)
/// These are tattoos. Also removes any other torso decals.
/// PARAMS:
/// mPed - the ped who is equipping the item
/// eType - the item type of the item equipped
/// eItem - the item we have equipped
/// bPreviewing - is the item just being previewed in shop / wardrobe
PROC EQUIP_TORSO_DECALS_MP(PED_INDEX mPed, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bPreviewing #IF USE_TU_CHANGES , INT iMultiDecalHash = 0 #ENDIF)
IF NOT IS_PED_INJURED(mPed)
IF SHOULD_TORSO_DECALS_BE_BLOCKED_FOR_OUTFIT(mPed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "EQUIP_TORSO_DECALS_MP : Skip - torso decal blocked for this outfit")
EXIT
ENDIF
IF eType = COMP_TYPE_JBIB
OR eType = COMP_TYPE_SPECIAL
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed)
IF eType = COMP_TYPE_JBIB
// if jacket jbib do the checks on the special item equipped.
IF IS_JBIB_COMPONENT_A_JACKET(ePedModel, eItem)
eType = COMP_TYPE_SPECIAL
eItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, eType)
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
// only do the torso decal stuff for specials if the jbib is a jacket
PED_COMP_NAME_ENUM eJbib = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_JBIB)
IF NOT IS_JBIB_COMPONENT_A_JACKET(ePedModel, eJbib)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "EQUIP_TORSO_DECALS_MP : Skip - Equipping special and the jbib isn't a jacket")
EXIT
ENDIF
ENDIF
// always remove previous jbib / special decals
REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(GET_HASH_KEY("torsoDecal"), mPed)
#IF USE_TU_CHANGES
IF eType = COMP_TYPE_JBIB
IF NOT CAN_JBIB_HAVE_CREW_LOGO(ePedModel, eItem, TATTOO_MP_FM_CREW_A)
AND NOT CAN_JBIB_HAVE_CREW_LOGO(ePedModel, eItem, TATTOO_MP_FM_CREW_B)
AND NOT CAN_JBIB_HAVE_CREW_LOGO(ePedModel, eItem, TATTOO_MP_FM_CREW_C)
AND NOT CAN_JBIB_HAVE_CREW_LOGO(ePedModel, eItem, TATTOO_MP_FM_CREW_D)
AND NOT CAN_JBIB_HAVE_CREW_LOGO(ePedModel, eItem, TATTOO_MP_FM_CREW_E)
AND NOT CAN_JBIB_HAVE_CREW_LOGO(ePedModel, eItem, TATTOO_MP_FM_CREW_F)
REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(GET_HASH_KEY("crewLogo"), mPed)
ENDIF
ENDIF
#ENDIF
// do jbib / special decals
TATTOO_NAME_ENUM eTorsoDecalTattoo
eTorsoDecalTattoo = GET_TORSO_DECAL_TATTOO_MP(ePedModel, eType, eItem #IF USE_TU_CHANGES , iMultiDecalHash #ENDIF)
IF eTorsoDecalTattoo <> INVALID_TATTOO
// found a torso decal tattoo
IF bPreviewing = TRUE
GIVE_PED_TEMP_TATTOO_MP(mPed, eTorsoDecalTattoo)
ELSE
SET_MP_TATTOO_CURRENT(eTorsoDecalTattoo, TRUE, g_iPedComponentSlot)
ENDIF
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "EQUIP_TORSO_DECALS_MP : Equip - eTorsoDecalTattoo=", eTorsoDecalTattoo, " iMultiDecalHash= ", iMultiDecalHash, " bPreviewing= ", bPreviewing)
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Equips a crew logo tattoo (used in the character creation screen)
/// For the crew tshirts the logos are as follows:
/// Male: Small = TATTOO_MP_FM_CREW_A Large = TATTOO_MP_FM_CREW_B Back = TATTOO_MP_FM_CREW_C
/// Female: Small = TATTOO_MP_FM_CREW_A Large = TATTOO_MP_FM_CREW_C
/// PARAMS:
/// mPed - the ped equipping the decal
/// eCrewLogoTattoo - which tattoo we are equipping.
PROC EQUIP_CREW_LOGO(PED_INDEX mPed, TATTOO_NAME_ENUM eCrewLogoTattoo, BOOL bComingFromCharacterCreator = FALSE)
// always remove previous crew logoss
REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(GET_HASH_KEY("crewLogo"), mPed)
SET_MP_TATTOO_CURRENT(eCrewLogoTattoo, TRUE, g_iPedComponentSlot)
CPRINTLN(DEBUG_PED_COMP, "Equipping crew logo ", eCrewLogoTattoo)
CPRINTLN(DEBUG_PED_COMP, "Updating MP tattoos for crew logo.")
IF bComingFromCharacterCreator
UPDATE_TATOOS_MP(mPed, FALSE, TRUE)
ELSE
UPDATE_TATOOS_MP(mPed)
ENDIF
ENDPROC
/// PURPOSE:
/// Equips the hair overlay tattoo that goes with this hair item
/// Also removes any other hair overlays.
/// PARAMS:
/// mPed - the ped who is equipping the item
/// eItem - the hair item we have equipped
PROC EQUIP_HAIR_OVERLAY_MP(PED_INDEX mPed, PED_COMP_NAME_ENUM eItem, INT iSlot = -1, BOOL bBlockTorsoDecal = FALSE)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed)
// always remove previous hair overlays
REMOVE_TATTOOS_IN_UPGRADE_GROUP_MP(GET_HASH_KEY("hairOverlay"), mPed)
// equip correct hair overlay
TATTOO_NAME_ENUM eHairOverlay
eHairOverlay = GET_HAIR_OVERLAY(ePedModel, eItem)
IF eHairOverlay <> INVALID_TATTOO
// found a hair overlay
IF iSlot = -1
iSlot = g_iPedComponentSlot
ENDIF
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("sc_ExtraTattooDebug")
PRINTLN("sc_ExtraTattooDebug: EQUIP_HAIR_OVERLAY_MP(slot=", iSlot, ")")
DEBUG_PRINTCALLSTACK()
ENDIF
#ENDIF
SET_MP_TATTOO_CURRENT(eHairOverlay, TRUE, iSlot)
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), "Equipping eHairOverlay ", eHairOverlay, " for item ", eItem)
ENDIF
CPRINTLN(DEBUG_PED_COMP, "Updating MP tattoos as we are updating hair overlay.")
UPDATE_TATOOS_MP(mPed,bBlockTorsoDecal)
ENDPROC
PROC RESET_PLAYER_HEAD_BLEND_TO_NORM(PED_INDEX pedID, INT iSlot = -1)
IF NOT HAS_PED_HEAD_BLEND_FINISHED(pedId)
CWARNINGLN(DEBUG_PED_COMP, "\"", GET_THIS_SCRIPT_NAME(), "\" called RESET_PLAYER_HEAD_BLEND_TO_NORM() while a head blend is already in progres. This will lead to a green scalp underlay")
ENDIF
IF IS_USING_CUSTOM_PLAYER_MODEL()
PRINTLN("RESET_PLAYER_HEAD_BLEND_TO_NORM - using a custom player model. quit out.")
EXIT
ENDIF
scrPedHeadBlendData targetBlendData
GET_PED_HEAD_BLEND_DATA(pedId, targetBlendData)
INT head0, head1, head2, tex0, tex1, tex2
FLOAT headBlend, texBlend, varBlend
BOOL parent
#IF NOT IS_NEXTGEN_BUILD
BOOL grandparent
#ENDIF
head0 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_HEAD0, iSlot)
head1 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_HEAD1, iSlot)
head2 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_HEAD2, iSlot)
tex0 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_TEX0, iSlot)
tex1 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_TEX1, iSlot)
tex2 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_TEX2, iSlot)
headBlend = GET_MP_FLOAT_CHARACTER_STAT(MP_STAT_MESH_HEADBLEND, iSlot)
texBlend = GET_MP_FLOAT_CHARACTER_STAT(MP_STAT_MESH_TEXBLEND, iSlot)
varBlend = GET_MP_FLOAT_CHARACTER_STAT(MP_STAT_MESH_VARBLEND, iSlot)
parent = GET_MP_BOOL_CHARACTER_STAT(MP_STAT_MESH_ISPARENT, iSlot)
IF targetBlendData.m_head0 != head0
OR targetBlendData.m_head1 != head1
OR targetBlendData.m_head2 != head2
OR targetBlendData.m_tex0 != tex0
OR targetBlendData.m_tex1 != tex1
OR targetBlendData.m_tex2 != tex2
OR targetBlendData.m_headBlend != headBlend
OR targetBlendData.m_texBlend != texBlend
OR targetBlendData.m_varBlend != varBlend
OR targetBlendData.m_isParent != parent
CPRINTLN(DEBUG_MISSION, "[", GET_THIS_SCRIPT_NAME(), ":RESET_PLAYER_HEAD_BLEND_TO_NORM]: Force head to normal (head ", head0, ", ", head1, ", ", head2, ", tex ", tex0, ", ", tex1, ", ", tex2, ")")
SET_PED_HEAD_BLEND_DATA(pedId, head0, head1, head2, tex0, tex1, tex2,headBlend, texBlend, varBlend, parent)
// We aren't using server stats here so get gen version from this
INT iGenVersion = GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_IS_NG_VERSION, iSlot)
CPRINTLN(DEBUG_PED_COMP, "[", GET_THIS_SCRIPT_NAME(), "]: iGenVersion: ", iGenVersion)
IF iGenVersion > 0
CPRINTLN(DEBUG_PED_COMP, "[", GET_THIS_SCRIPT_NAME(), "]: Ped: ", NATIVE_TO_INT(pedId), ", in slot: ", iSlot, ", is an NG character. Calling APPLY_CHARACTER_CREATOR_FEATURES_FROM_STATS")
APPLY_CHARACTER_CREATOR_FEATURES_FROM_STATS(pedId, iSlot, FALSE)
ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, "[", GET_THIS_SCRIPT_NAME(), ":RESET_PLAYER_HEAD_BLEND_TO_NORM]: Head already set to normal")
ENDIF
ENDPROC
PROC SET_HEAD_BLEND_UPDATE(ped_index PedID,MP_OUTFITS_DATA &sOutfitsData,INT iPlayerIndex = -1)
CPRINTLN(DEBUG_MISSION, "SET_HEAD_BLEND_UPDATE called with player index ", iPlayerIndex)
if iplayerIndex = -1
iPlayerIndex = NATIVE_TO_INT(NETWORK_GET_PLAYER_INDEX_FROM_PED(pedID) )
if iplayerIndex != -1
CPRINTLN(DEBUG_MISSION, "SET_HEAD_BLEND_UPDATE updating player index to ", iPlayerIndex)
endif
endif
//Check if we need to shrink the peds head when using restricted tags
IF (sOutfitsData.iComponentDrawableID[COMP_TYPE_BERD] > 0)
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_BERD), sOutfitsData.iComponentDrawableID[COMP_TYPE_BERD], sOutfitsData.iComponentTextureID[COMP_TYPE_BERD]), DLC_RESTRICTION_TAG_SHRINK_HEAD, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "[SET_HEAD_BLEND_UPDATE] Shrinking head as restriction tag has been hit ")
scrPedHeadBlendData playerBlendData
GET_PED_HEAD_BLEND_DATA(pedID, playerBlendData)
IF (GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01)
CPRINTLN(DEBUG_PED_COMP, "[SET_HEAD_BLEND_UPDATE] Force male head to small - Berd item tag is set: DLC_RESTRICTION_TAG_SHRINK_HEAD")
SET_PED_HEAD_BLEND_DATA(pedID, 0,0,0, playerBlendData.m_tex0, playerBlendData.m_tex1, playerBlendData.m_tex2, 0.0, playerBlendData.m_texBlend, 0.0)
ELIF (GET_ENTITY_MODEL(pedID) = MP_F_FREEMODE_01)
CPRINTLN(DEBUG_PED_COMP, "[SET_HEAD_BLEND_UPDATE] Force female head to small - Berd item tag is set: DLC_RESTRICTION_TAG_SHRINK_HEAD")
#IF NOT IS_NEXTGEN_BUILD
SET_PED_HEAD_BLEND_DATA(pedID, 14,0,0, playerBlendData.m_tex0, playerBlendData.m_tex1, playerBlendData.m_tex2, 0.0, playerBlendData.m_texBlend, 0.0)
#ENDIF
#IF IS_NEXTGEN_BUILD
SET_PED_HEAD_BLEND_DATA(pedID, 21,0,0, playerBlendData.m_tex0, playerBlendData.m_tex1, playerBlendData.m_tex2, 0.0, playerBlendData.m_texBlend, 0.0)
#ENDIF
ENDIF
#IF NOT IS_NEXTGEN_BUILD
SET_PED_HEAD_BLEND_HAS_GRANDPARENTS(pedID, FALSE)
#ENDIF
#IF IS_NEXTGEN_BUILD
MICRO_MORPH_TYPE microMorph
REPEAT ciCHARACTER_CREATOR_MAX_MICRO_MORPH microMorph
SET_PED_MICRO_MORPH(pedID, microMorph, 0.0)
ENDREPEAT
#ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_HEAD_BLEND_UPDATE] Resetting head to normal ")
IF iPlayerIndex != -1
and INT_TO_PLAYERINDEX(iPlayerIndex) != player_ID() //equal to player
if NETWORK_HAS_CACHED_PLAYER_HEAD_BLEND_DATA(INT_TO_PLAYERINDEX(iPlayerIndex))
and NETWORK_HAS_CONTROL_OF_ENTITY(pedID)
CPRINTLN(DEBUG_MISSION, "[SET_HEAD_BLEND_UPDATE][NETWORK_APPLY_CACHED_PLAYER_HEAD_BLEND_DATA 2]: player index ",iPlayerIndex)
NETWORK_APPLY_CACHED_PLAYER_HEAD_BLEND_DATA(pedID,INT_TO_PLAYERINDEX(iPlayerIndex) )
else
CPRINTLN(DEBUG_MISSION, "[SET_HEAD_BLEND_UPDATE]NETWORK_APPLY_CACHED_PLAYER_HEAD_BLEND_DATA no data cached for player head blend data: ",iPlayerIndex)
endif
ELSE
RESET_PLAYER_HEAD_BLEND_TO_NORM(pedID)
endif
ENDIF
ENDPROC
FUNC INT GET_CHEMSUIT_HOOD_VARIATION(PED_INDEX pedID,Bool bHoodUp = true)
scrShopPedComponent componentItem
BOOL bMale = (GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01)
componentItem.m_drawableIndex = -1
if bmale
if bHoodUp
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_SPECIAL_7_0), componentItem)
else
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_SPECIAL_6_0), componentItem)
endif
else
if bHoodUp
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_SPECIAL_11_0), componentItem)
else
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_SPECIAL_10_0), componentItem)
endif
endif
return componentItem.m_drawableIndex
ENDFUNC
FUNC BOOL IS_PED_WEARING_HOODED_JACKET(PED_INDEX ped, BOOL &bHoodIsUp, BOOL &bHoodIsTucked)
bHoodIsUp = FALSE
INT iJbibDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB)
INT iJbibTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB)
INT iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_JBIB), iJbibDraw, iJbibTex)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOODED_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
bHoodIsUp = DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOOD_UP, ENUM_TO_INT(SHOP_PED_COMPONENT))
bHoodIsTucked = DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOOD_TUCKED, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_FITTED_HOOD(PED_INDEX ped)
RETURN DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, PED_COMP_JBIB, DLC_RESTRICTION_TAG_FITTED_HOOD)
ENDFUNC
#IF FEATURE_TUNER
FUNC BOOL IS_PED_WEARING_CAR_MEET_MERCH_STORE_ITEM(PED_INDEX ped)
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, PED_COMP_JBIB, DLC_RESTRICTION_TAG_CAR_MEET_ITEM)
OR DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, PED_COMP_LEG, DLC_RESTRICTION_TAG_CAR_MEET_ITEM)
OR DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, PED_COMP_FEET, DLC_RESTRICTION_TAG_CAR_MEET_ITEM)
OR DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, PED_COMP_DECL, DLC_RESTRICTION_TAG_CAR_MEET_ITEM)
OR DOES_CURRENT_PED_PROP_HAVE_RESTRICTION_TAG(ped, ENUM_TO_INT(ANCHOR_HEAD), DLC_RESTRICTION_TAG_CAR_MEET_ITEM)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
#ENDIF
FUNC BOOL DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(INT iDLCHash, PED_COMPONENT eForcedPedComp, INT iForcedDLCHash = -1)
IF iDLCHash != -1
INT iForcedComps = GET_SHOP_PED_APPAREL_FORCED_COMPONENT_COUNT(iDLCHash)
INT iForcedComp
INT iRetNameHash, iRetCompEnum, iRetType
REPEAT iForcedComps iForcedComp
GET_FORCED_COMPONENT(iDLCHash, iForcedComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(eForcedPedComp)
AND (iForcedDLCHash = -1 OR iForcedDLCHash = iRetNameHash)
RETURN TRUE
ENDIF
ENDREPEAT
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL GET_FORCED_DLC_COMP_OF_TYPE(INT iDLCHash, PED_COMPONENT eForcedPedComp, INT &iRetNameHash)
IF iDLCHash != -1
INT iForcedComps = GET_SHOP_PED_APPAREL_FORCED_COMPONENT_COUNT(iDLCHash)
INT iForcedComp
INT iRetCompEnum, iRetType
REPEAT iForcedComps iForcedComp
GET_FORCED_COMPONENT(iDLCHash, iForcedComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(eForcedPedComp)
RETURN TRUE
ENDIF
ENDREPEAT
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL GET_ALT_DLC_PED_COMP_OF_TYPE(INT iDLCHash, PED_COMPONENT ePedComp, INT &iRetNameHash, INT iMustHaveTag = -1)
INT iAltComps
INT iAltComp
INT iRetCompEnum, iRetType
iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iDLCHash)
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iDLCHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(ePedComp)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
IF iMustHaveTag = -1
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iRetNameHash, iMustHaveTag, iRetType)
RETURN TRUE
ENDIF
ENDIF
ENDIF
ENDREPEAT
RETURN FALSE
ENDFUNC
FUNC BOOL GET_ALT_HOODED_JACKET(INT iDLCHash, BOOL bUp, BOOL bTucked, INT &iRetNameHash)
iRetNameHash = -1
INT iAltComps
INT iAltComp
INT iRetCompEnum, iRetType
iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iDLCHash)
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iDLCHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(PED_COMP_JBIB)
AND iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
AND bUp = DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iRetNameHash, DLC_RESTRICTION_TAG_HOOD_UP, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND bTucked = DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iRetNameHash, DLC_RESTRICTION_TAG_HOOD_TUCKED, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
ENDREPEAT
RETURN FALSE
ENDFUNC
FUNC BOOL GET_ALT_JACKET_STATE(INT iDLCHash, BOOL bOpen, INT &iRetNameHash)
iRetNameHash = -1
INT iAltComps
INT iAltComp
INT iRetCompEnum, iRetType
iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iDLCHash)
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iDLCHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(PED_COMP_JBIB)
AND iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
AND bOpen = DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iRetNameHash, DLC_RESTRICTION_TAG_OPEN_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
ENDREPEAT
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_HAZ_TOP(PED_INDEX pedID, INT iDLCJbibHash = -1)
IF iDLCJbibHash = -1
iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_JBIB), GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB), GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_JBIB))
ENDIF
IF GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_14, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
ELIF GET_ENTITY_MODEL(pedID) = MP_F_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP(PED_INDEX ped, BOOL &bShouldBeRemoved, INT iDLCJbibHash = -1, INT iDLCBerdHash = -1, INT iDLCPropHeadHash = -1)
bShouldBeRemoved = FALSE
IF iDLCJbibHash = -1
iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_JBIB), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB))
ENDIF
IF iDLCBerdHash = -1
iDLCBerdHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_BERD), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_BERD))
ENDIF
IF iDLCPropHeadHash = -1
iDLCPropHeadHash = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(ped), ENUM_TO_INT(ANCHOR_HEAD), GET_PED_PROP_INDEX(ped, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(ped, ANCHOR_HEAD))
ENDIF
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
// HOODED JACKET
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOODED_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
// New hoodies
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_FITTED_HOOD, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Work with hood hats and no hat
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCPropHeadHash, DLC_RESTRICTION_TAG_HOOD_HAT, ENUM_TO_INT(SHOP_PED_PROP))
AND GET_PED_PROP_INDEX(ped, ANCHOR_HEAD) != -1
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Prop doesn't work with fitted hood")
RETURN FALSE
ENDIF
// Works with hood compat, haz mask, and no mask
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_HOOD_COMPAT, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_HAZ_MASK, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_BERD) != 0
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCPropHeadHash, DLC_RESTRICTION_TAG_HOOD_HAT, ENUM_TO_INT(SHOP_PED_PROP))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_SKI_MASK, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_BIKER_MASK, ENUM_TO_INT(SHOP_PED_COMPONENT))
// allow player to wear biker masks with hood hat and hood jacket
ELSE
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Berd doesn't work with fitted hood + hood hat")
RETURN FALSE
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_BIKER_MASK, ENUM_TO_INT(SHOP_PED_COMPONENT))
// allow player to wear biker masks with hood jacket
ELSE
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Berd doesn't work with fitted hood")
RETURN FALSE
ENDIF
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : NVG doesn't work with fitted hood")
RETURN FALSE
ENDIF
// Old hoodies
ELSE
// Work with no hat
IF GET_PED_PROP_INDEX(ped, ANCHOR_HEAD) != -1
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Prop doesn't work with standard hood")
RETURN FALSE
ENDIF
// Works with hood compat, haz mask, and no mask
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_HOOD_COMPAT, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_HAZ_MASK, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_BERD) != 0
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Berd doesn't work with standard hood")
RETURN FALSE
ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Success : Prop and berd work with hooded jacket")
RETURN TRUE
ENDIF
// CHEM SUIT
IF (ePedModel = MP_M_FREEMODE_01)
// Make sure we don't add a hood when we're not wearing chemical suit.
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_14, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Not wearing hazmat suit, remove")
bShouldBeRemoved = TRUE
RETURN FALSE
ENDIF
SWITCH iDLCBerdHash
// - Loose Balaclava
CASE HASH("DLC_MP_HEIST_M_BERD_21_0")
CASE HASH("DLC_MP_HEIST_M_BERD_21_1")
CASE HASH("DLC_MP_HEIST_M_BERD_21_2")
CASE HASH("DLC_MP_HEIST_M_BERD_21_3")
CASE HASH("DLC_MP_HEIST_M_BERD_21_4")
CASE HASH("DLC_MP_HEIST_M_BERD_21_5")
CASE HASH("DLC_MP_HEIST_M_BERD_21_6")
CASE HASH("DLC_MP_HEIST_M_BERD_21_7")
CASE HASH("DLC_MP_HEIST_M_BERD_21_8")
// - Paper Bag
CASE HASH("DLC_MP_HEIST_M_BERD_14_0")
CASE HASH("DLC_MP_HEIST_M_BERD_14_1")
CASE HASH("DLC_MP_HEIST_M_BERD_14_2")
CASE HASH("DLC_MP_HEIST_M_BERD_14_3")
CASE HASH("DLC_MP_HEIST_M_BERD_14_4")
CASE HASH("DLC_MP_HEIST_M_BERD_14_5")
CASE HASH("DLC_MP_HEIST_M_BERD_14_6")
CASE HASH("DLC_MP_HEIST_M_BERD_14_7")
CASE HASH("DLC_MP_HEIST_M_BERD_14_8")
CASE HASH("DLC_MP_HEIST_M_BERD_14_9")
CASE HASH("DLC_MP_HEIST_M_BERD_14_10")
CASE HASH("DLC_MP_HEIST_M_BERD_14_11")
CASE HASH("DLC_MP_HEIST_M_BERD_14_12")
CASE HASH("DLC_MP_HEIST_M_BERD_14_13")
CASE HASH("DLC_MP_HEIST_M_BERD_14_14")
CASE HASH("DLC_MP_HEIST_M_BERD_14_15")
CASE HASH("DLC_MP_HEIST_M_BERD_14_16")
CASE HASH("DLC_MP_HEIST_M_BERD_14_17")
CASE HASH("DLC_MP_HEIST_M_BERD_14_18")
CASE HASH("DLC_MP_HEIST_M_BERD_14_19")
CASE HASH("DLC_MP_HEIST_M_BERD_14_20")
CASE HASH("DLC_MP_HEIST_M_BERD_14_21")
CASE HASH("DLC_MP_HEIST_M_BERD_14_22")
CASE HASH("DLC_MP_HEIST_M_BERD_14_23")
CASE HASH("DLC_MP_HEIST_M_BERD_14_24")
CASE HASH("DLC_MP_HEIST_M_BERD_14_25")
// - Vulture
CASE HASH("DLC_MP_IND_M_BERD_4_0")
CASE HASH("DLC_MP_IND_M_BERD_4_1")
// - Eagle
CASE HASH("DLC_MP_IND_M_BERD_3_0")
CASE HASH("DLC_MP_IND_M_BERD_3_1")
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Berd doesn't work with hazmat suit, remove")
bShouldBeRemoved = TRUE
RETURN FALSE
BREAK
ENDSWITCH
ELSE
// Make sure we don't add a hood when we're not wearing chemical suit.
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_15, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Not wearing hazmat suit, remove")
bShouldBeRemoved = TRUE
RETURN FALSE
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_SCRUFFY_BALACLAVA, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Berd doesn't work with hazmat suit, remove")
bShouldBeRemoved = TRUE
RETURN FALSE
ENDIF
SWITCH iDLCBerdHash
// - Tshirt
CASE HASH("DLC_MP_SMUG_F_BERD_8_0")
CASE HASH("DLC_MP_SMUG_F_BERD_8_1")
CASE HASH("DLC_MP_SMUG_F_BERD_8_2")
CASE HASH("DLC_MP_SMUG_F_BERD_8_3")
CASE HASH("DLC_MP_SMUG_F_BERD_8_4")
CASE HASH("DLC_MP_SMUG_F_BERD_8_5")
CASE HASH("DLC_MP_SMUG_F_BERD_8_6")
CASE HASH("DLC_MP_SMUG_F_BERD_8_7")
CASE HASH("DLC_MP_SMUG_F_BERD_8_8")
CASE HASH("DLC_MP_SMUG_F_BERD_8_9")
CASE HASH("DLC_MP_SMUG_F_BERD_8_10")
CASE HASH("DLC_MP_SMUG_F_BERD_8_11")
CASE HASH("DLC_MP_SMUG_F_BERD_8_12")
CASE HASH("DLC_MP_SMUG_F_BERD_8_13")
CASE HASH("DLC_MP_SMUG_F_BERD_8_14")
CASE HASH("DLC_MP_SMUG_F_BERD_8_15")
CASE HASH("DLC_MP_SMUG_F_BERD_8_16")
CASE HASH("DLC_MP_SMUG_F_BERD_8_17")
CASE HASH("DLC_MP_SMUG_F_BERD_8_18")
CASE HASH("DLC_MP_SMUG_F_BERD_8_19")
CASE HASH("DLC_MP_SMUG_F_BERD_8_20")
CASE HASH("DLC_MP_SMUG_F_BERD_8_21")
CASE HASH("DLC_MP_SMUG_F_BERD_8_22")
CASE HASH("DLC_MP_SMUG_F_BERD_8_23")
CASE HASH("DLC_MP_SMUG_F_BERD_8_24")
CASE HASH("DLC_MP_SMUG_F_BERD_8_25")
// - Knit Balaclava
CASE HASH("DLC_MP_HEIST_F_BERD_23_0")
CASE HASH("DLC_MP_HEIST_F_BERD_23_1")
CASE HASH("DLC_MP_HEIST_F_BERD_23_2")
CASE HASH("DLC_MP_HEIST_F_BERD_23_3")
CASE HASH("DLC_MP_HEIST_F_BERD_23_4")
CASE HASH("DLC_MP_HEIST_F_BERD_23_5")
CASE HASH("DLC_MP_HEIST_F_BERD_23_6")
CASE HASH("DLC_MP_HEIST_F_BERD_23_7")
CASE HASH("DLC_MP_HEIST_F_BERD_23_8")
CASE HASH("DLC_MP_HEIST_F_BERD_23_9")
// - Knit Balaclava
CASE HASH("DLC_MP_HEIST_F_BERD_22_0")
CASE HASH("DLC_MP_HEIST_F_BERD_22_1")
CASE HASH("DLC_MP_HEIST_F_BERD_22_2")
CASE HASH("DLC_MP_HEIST_F_BERD_22_3")
CASE HASH("DLC_MP_HEIST_F_BERD_22_4")
CASE HASH("DLC_MP_HEIST_F_BERD_22_5")
CASE HASH("DLC_MP_HEIST_F_BERD_22_6")
CASE HASH("DLC_MP_HEIST_F_BERD_22_7")
CASE HASH("DLC_MP_HEIST_F_BERD_22_8")
CASE HASH("DLC_MP_HEIST_F_BERD_22_9")
CASE HASH("DLC_MP_HEIST_F_BERD_22_10")
CASE HASH("DLC_MP_HEIST_F_BERD_22_11")
CASE HASH("DLC_MP_HEIST_F_BERD_22_12")
CASE HASH("DLC_MP_HEIST_F_BERD_22_13")
CASE HASH("DLC_MP_HEIST_F_BERD_22_14")
CASE HASH("DLC_MP_HEIST_F_BERD_22_15")
CASE HASH("DLC_MP_HEIST_F_BERD_22_16")
CASE HASH("DLC_MP_HEIST_F_BERD_22_17")
CASE HASH("DLC_MP_HEIST_F_BERD_22_18")
CASE HASH("DLC_MP_HEIST_F_BERD_22_19")
CASE HASH("DLC_MP_HEIST_F_BERD_22_20")
CASE HASH("DLC_MP_HEIST_F_BERD_22_21")
// - Loose Balaclava
CASE HASH("DLC_MP_HEIST_F_BERD_21_0")
CASE HASH("DLC_MP_HEIST_F_BERD_21_1")
CASE HASH("DLC_MP_HEIST_F_BERD_21_2")
CASE HASH("DLC_MP_HEIST_F_BERD_21_3")
CASE HASH("DLC_MP_HEIST_F_BERD_21_4")
CASE HASH("DLC_MP_HEIST_F_BERD_21_5")
CASE HASH("DLC_MP_HEIST_F_BERD_21_6")
CASE HASH("DLC_MP_HEIST_F_BERD_21_7")
CASE HASH("DLC_MP_HEIST_F_BERD_21_8")
// - Toggle Ski
CASE HASH("DLC_MP_HEIST_F_BERD_20_0")
CASE HASH("DLC_MP_HEIST_F_BERD_20_1")
// - Tshirt
CASE HASH("DLC_MP_HEIST_F_BERD_19_0")
CASE HASH("DLC_MP_HEIST_F_BERD_19_1")
CASE HASH("DLC_MP_HEIST_F_BERD_19_2")
CASE HASH("DLC_MP_HEIST_F_BERD_19_3")
CASE HASH("DLC_MP_HEIST_F_BERD_19_4")
CASE HASH("DLC_MP_HEIST_F_BERD_19_5")
CASE HASH("DLC_MP_HEIST_F_BERD_19_6")
CASE HASH("DLC_MP_HEIST_F_BERD_19_7")
CASE HASH("DLC_MP_HEIST_F_BERD_19_8")
CASE HASH("DLC_MP_HEIST_F_BERD_19_9")
CASE HASH("DLC_MP_HEIST_F_BERD_19_10")
// - Hooded Ski
CASE HASH("DLC_MP_HEIST_F_BERD_18_0")
CASE HASH("DLC_MP_HEIST_F_BERD_18_1")
CASE HASH("DLC_MP_HEIST_F_BERD_18_2")
CASE HASH("DLC_MP_HEIST_F_BERD_18_3")
CASE HASH("DLC_MP_HEIST_F_BERD_18_4")
CASE HASH("DLC_MP_HEIST_F_BERD_18_5")
CASE HASH("DLC_MP_HEIST_F_BERD_18_6")
CASE HASH("DLC_MP_HEIST_F_BERD_18_7")
CASE HASH("DLC_MP_HEIST_F_BERD_18_8")
// - Tight Ski
CASE HASH("DLC_MP_HEIST_F_BERD_17_0")
CASE HASH("DLC_MP_HEIST_F_BERD_17_1")
CASE HASH("DLC_MP_HEIST_F_BERD_17_2")
CASE HASH("DLC_MP_HEIST_F_BERD_17_3")
CASE HASH("DLC_MP_HEIST_F_BERD_17_4")
CASE HASH("DLC_MP_HEIST_F_BERD_17_5")
CASE HASH("DLC_MP_HEIST_F_BERD_17_6")
CASE HASH("DLC_MP_HEIST_F_BERD_17_7")
CASE HASH("DLC_MP_HEIST_F_BERD_17_8")
CASE HASH("DLC_MP_HEIST_F_BERD_17_9")
CASE HASH("DLC_MP_HEIST_F_BERD_17_10")
// - Paper Bag
CASE HASH("DLC_MP_HEIST_F_BERD_14_0")
CASE HASH("DLC_MP_HEIST_F_BERD_14_1")
CASE HASH("DLC_MP_HEIST_F_BERD_14_2")
CASE HASH("DLC_MP_HEIST_F_BERD_14_3")
CASE HASH("DLC_MP_HEIST_F_BERD_14_4")
CASE HASH("DLC_MP_HEIST_F_BERD_14_5")
CASE HASH("DLC_MP_HEIST_F_BERD_14_6")
CASE HASH("DLC_MP_HEIST_F_BERD_14_7")
CASE HASH("DLC_MP_HEIST_F_BERD_14_8")
CASE HASH("DLC_MP_HEIST_F_BERD_14_9")
CASE HASH("DLC_MP_HEIST_F_BERD_14_10")
CASE HASH("DLC_MP_HEIST_F_BERD_14_11")
CASE HASH("DLC_MP_HEIST_F_BERD_14_12")
CASE HASH("DLC_MP_HEIST_F_BERD_14_13")
CASE HASH("DLC_MP_HEIST_F_BERD_14_14")
CASE HASH("DLC_MP_HEIST_F_BERD_14_15")
CASE HASH("DLC_MP_HEIST_F_BERD_14_16")
CASE HASH("DLC_MP_HEIST_F_BERD_14_17")
CASE HASH("DLC_MP_HEIST_F_BERD_14_18")
CASE HASH("DLC_MP_HEIST_F_BERD_14_19")
CASE HASH("DLC_MP_HEIST_F_BERD_14_20")
CASE HASH("DLC_MP_HEIST_F_BERD_14_21")
CASE HASH("DLC_MP_HEIST_F_BERD_14_22")
CASE HASH("DLC_MP_HEIST_F_BERD_14_23")
CASE HASH("DLC_MP_HEIST_F_BERD_14_24")
CASE HASH("DLC_MP_HEIST_F_BERD_14_25")
// - Tape
CASE HASH("DLC_MP_HEIST_F_BERD_13_0")
CASE HASH("DLC_MP_HEIST_F_BERD_13_1")
CASE HASH("DLC_MP_HEIST_F_BERD_13_2")
CASE HASH("DLC_MP_HEIST_F_BERD_13_3")
CASE HASH("DLC_MP_HEIST_F_BERD_12_0")
CASE HASH("DLC_MP_HEIST_F_BERD_12_1")
CASE HASH("DLC_MP_HEIST_F_BERD_12_2")
CASE HASH("DLC_MP_HEIST_F_BERD_12_3")
// - Frank
CASE HASH("DLC_MP_HEIST_F_BERD_7_0")
CASE HASH("DLC_MP_HEIST_F_BERD_7_1")
// - Mummy
CASE HASH("DLC_MP_HEIST_F_BERD_5_0")
CASE HASH("DLC_MP_HEIST_F_BERD_5_1")
// - Infected
CASE HASH("DLC_MP_HEIST_F_BERD_4_0")
CASE HASH("DLC_MP_HEIST_F_BERD_4_1")
// - Nightvision Balaclava
CASE HASH("DLC_MP_HEIST_F_BERD_0_0")
// - Stocking mask
CASE HASH("DLC_MP_XMAS2_F_BERD_1_0")
// - LTS mask
CASE HASH("DLC_MP_LTS_F_BERD_0_0")
CASE HASH("DLC_MP_LTS_F_BERD_0_1")
CASE HASH("DLC_MP_LTS_F_BERD_0_2")
CASE HASH("DLC_MP_LTS_F_BERD_0_3")
CASE HASH("DLC_MP_LTS_F_BERD_0_4")
// - Vulture
CASE HASH("DLC_MP_IND_F_BERD_4_0")
CASE HASH("DLC_MP_IND_F_BERD_4_1")
// - Eagle
CASE HASH("DLC_MP_IND_F_BERD_3_0")
CASE HASH("DLC_MP_IND_F_BERD_3_1")
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Berd doesn't work with hazmat suit, remove")
bShouldBeRemoved = TRUE
RETURN FALSE
BREAK
ENDSWITCH
ENDIF
// Put hood up
// - Chemical Mask
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_HAZ_MASK, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT IS_ITEM_A_HELMET(ePedModel, COMP_TYPE_PROPS, GET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_PROPS, ENUM_TO_INT(ANCHOR_HEAD)))
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Success : Hood can remain up")
RETURN TRUE
// Put hood down
// - Everything else
ELSE
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Failed : Hood needs to go down")
RETURN FALSE
ENDIF
CPRINTLN(DEBUG_PED_COMP, "DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP : Success : No erorrs reported")
RETURN TRUE
ENDFUNC
PROC UPDATE_PED_HOOD_STATE(PED_INDEX ped)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
INT iJbibDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB)
INT iJbibTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB)
INT iBerdDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_BERD)
INT iBerdTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_BERD)
INT iSpecialDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_SPECIAL)
INT iSpecialTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_SPECIAL)
INT iDeclDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_DECL)
INT iDeclTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_DECL)
INT iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_JBIB), iJbibDraw, iJbibTex)
INT iDLCBerdHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_BERD), iBerdDraw, iBerdTex)
INT iDLCSpecialHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_SPECIAL), iSpecialDraw, iSpecialTex)
INT iDLCPropHeadHash = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(ped), ENUM_TO_INT(ANCHOR_HEAD), GET_PED_PROP_INDEX(ped, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(ped, ANCHOR_HEAD))
INT iDLCDeclHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_DECL), iDeclDraw, iDeclTex)
BOOL bShouldBeRemoved = FALSE
scrShopPedComponent componentItem
// HOODED JACKET
// Force down if we are wearing a hooded jacket and the berd or head prop is not compatible.
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOODED_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOOD_UP, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF NOT DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP(ped, bShouldBeRemoved, iDLCJbibHash, iDLCBerdHash, iDLCPropHeadHash)
OR IS_PED_IN_ANY_VEHICLE(ped)
INT iAltItem
IF GET_ALT_HOODED_JACKET(iDLCJbibHash, FALSE, FALSE, iAltItem)
GET_SHOP_PED_COMPONENT(iAltItem, componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_JBIB, componentItem.m_drawableIndex, componentItem.m_textureIndex, GET_PED_PALETTE_VARIATION(ped, PED_COMP_JBIB))
// Restore forced DECL
IF GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_DECL) = 0
AND DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iDLCDeclHash, PED_COMP_JBIB)
IF DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iDLCDeclHash, PED_COMP_JBIB, componentItem.m_nameHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "UPDATE_PED_HOOD_STATE 1 : Restoring existing DECL")
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, iDeclDraw, iDeclTex)
ELSE
// Check if this DECL has an ALT decl that forces on the JBIB we just applied.
INT iRetNameHash
IF GET_ALT_DLC_PED_COMP_OF_TYPE(iDLCDeclHash, PED_COMP_DECL, iRetNameHash)
IF DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iRetNameHash, PED_COMP_JBIB, componentItem.m_nameHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "UPDATE_PED_HOOD_STATE 1 : Setting ALT DECL for new JBIB")
scrShopPedComponent componentItemDecl
GET_SHOP_PED_COMPONENT(iRetNameHash, componentItemDecl)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItemDecl.m_drawableIndex, componentItemDecl.m_textureIndex)
ENDIF
ENDIF
ENDIF
ENDIF
// Update decl on sleeveless hoodie.
IF GET_ENTITY_MODEL(ped) = MP_M_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCDeclHash, DLC_RESTRICTION_TAG_CREW_LOGO, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_16, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_IE_M_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_M_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_IE_M_DECL_2_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_M_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_GORKA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Re-apply
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_X17_M_DECL_10_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#IF FEATURE_FIXER
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_M_DECL_0_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_M_DECL_0_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_M_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_M_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#ENDIF
ENDIF
ENDIF
ELSE
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCDeclHash, DLC_RESTRICTION_TAG_CREW_LOGO, ENUM_TO_INT(SHOP_PED_COMPONENT))
PRINTLN("UPDATE_PED_HOOD_STATE - player has crew logo")
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_16, ENUM_TO_INT(SHOP_PED_COMPONENT))
PRINTLN("UPDATE_PED_HOOD_STATE - checking IE_DRAW_16")
IF iDLCDeclHash != HASH("DLC_MP_IE_F_DECL_1_0")
PRINTLN("UPDATE_PED_HOOD_STATE - set correct one for IE_DRAW_16")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_F_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
PRINTLN("UPDATE_PED_HOOD_STATE - checking IE_DRAW_19")
IF iDLCDeclHash != HASH("DLC_MP_IE_F_DECL_2_0")
PRINTLN("UPDATE_PED_HOOD_STATE - set correct one for IE_DRAW_19")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_F_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_GORKA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Re-apply
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_X17_F_DECL_10_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#IF FEATURE_FIXER
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_F_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_F_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_F_DECL_2_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_F_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#ENDIF
ENDIF
ENDIF
ENDIF
// Re-apply berd to fix hair.
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_BERD, iBerdDraw, iBerdTex)
ENDIF
ENDIF
// Force up if we are wearing a fake hood hat
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOODED_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOOD_DOWN, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCPropHeadHash, DLC_RESTRICTION_TAG_FAKE_HAT, ENUM_TO_INT(SHOP_PED_PROP))
INT iAltItem
IF GET_ALT_HOODED_JACKET(iDLCJbibHash, TRUE, FALSE, iAltItem)
GET_SHOP_PED_COMPONENT(iAltItem, componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_JBIB, componentItem.m_drawableIndex, componentItem.m_textureIndex, GET_PED_PALETTE_VARIATION(ped, PED_COMP_JBIB))
// Restore forced DECL
IF GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_DECL) = 0
AND DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iDLCDeclHash, PED_COMP_JBIB)
IF DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iDLCDeclHash, PED_COMP_JBIB, componentItem.m_nameHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "UPDATE_PED_HOOD_STATE 2 : Restoring existing DECL")
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, iDeclDraw, iDeclTex)
ELSE
// Check if this DECL has an ALT decl that forces on the JBIB we just applied.
INT iRetNameHash
IF GET_ALT_DLC_PED_COMP_OF_TYPE(iDLCDeclHash, PED_COMP_DECL, iRetNameHash)
IF DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iRetNameHash, PED_COMP_JBIB, componentItem.m_nameHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "UPDATE_PED_HOOD_STATE 2 : Setting ALT DECL for new JBIB")
scrShopPedComponent componentItemDecl
GET_SHOP_PED_COMPONENT(iRetNameHash, componentItemDecl)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItemDecl.m_drawableIndex, componentItemDecl.m_textureIndex)
ENDIF
ENDIF
ENDIF
ENDIF
// Update decl on sleeveless hoodie.
IF GET_ENTITY_MODEL(ped) = MP_M_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCDeclHash, DLC_RESTRICTION_TAG_CREW_LOGO, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_16, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_IE_M_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_M_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_IE_M_DECL_2_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_M_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_GORKA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Re-apply
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_X17_M_DECL_10_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#IF FEATURE_FIXER
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_M_DECL_0_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_M_DECL_0_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_M_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_M_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#ENDIF
ENDIF
ENDIF
ELSE
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCDeclHash, DLC_RESTRICTION_TAG_CREW_LOGO, ENUM_TO_INT(SHOP_PED_COMPONENT))
PRINTLN("UPDATE_PED_HOOD_STATE - player has crew logo")
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_16, ENUM_TO_INT(SHOP_PED_COMPONENT))
PRINTLN("UPDATE_PED_HOOD_STATE - checking IE_DRAW_16")
IF iDLCDeclHash != HASH("DLC_MP_IE_F_DECL_1_0")
PRINTLN("UPDATE_PED_HOOD_STATE - set correct one for IE_DRAW_16")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_F_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
PRINTLN("UPDATE_PED_HOOD_STATE - checking IE_DRAW_19")
IF iDLCDeclHash != HASH("DLC_MP_IE_F_DECL_2_0")
PRINTLN("UPDATE_PED_HOOD_STATE - set correct one for IE_DRAW_19")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_F_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_GORKA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Re-apply
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_X17_F_DECL_10_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#IF FEATURE_FIXER
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_F_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_F_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_F_DECL_2_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_F_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#ENDIF
ENDIF
ENDIF
ENDIF
// Re-apply berd to fix hair.
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_BERD, iBerdDraw, iBerdTex)
ENDIF
ENDIF
// CHEM SUIT
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCSpecialHash, DLC_RESTRICTION_TAG_HAZ_HOOD, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR IS_PED_WEARING_HAZ_TOP(ped, iDLCJbibHash)
//Moved here for url:bugstar:3918306
// Correct texture.
iSpecialTex = iJBIBTex
IF NOT DOES_HOOD_WORK_WITH_MASK_AND_HEAD_PROP(ped, bShouldBeRemoved, iDLCJbibHash, iDLCBerdHash, iDLCPropHeadHash)
// Mask/Prop not compatible with haz hood so force remove or pop down
IF bShouldBeRemoved
IF (ePedModel = MP_M_FREEMODE_01)
iSpecialDraw = 15
iSpecialTex = 0
ELSE
iSpecialDraw = 14
iSpecialTex = 0
ENDIF
ELSE
IF GET_ENTITY_MODEL(ped) = MP_M_FREEMODE_01
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_SPECIAL_6_0"), componentItem)
iSpecialDraw = componentItem.m_drawableIndex
ELSE
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_SPECIAL_10_0"), componentItem)
iSpecialDraw = componentItem.m_drawableIndex
ENDIF
ENDIF
ELSE
// Mask/Prop compatible with haz hood so force up
IF GET_ENTITY_MODEL(ped) = MP_M_FREEMODE_01
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_SPECIAL_7_0"), componentItem)
iSpecialDraw = componentItem.m_drawableIndex
ELSE
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_SPECIAL_11_0"), componentItem)
iSpecialDraw = componentItem.m_drawableIndex
ENDIF
ENDIF
IF iSpecialDraw != GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_SPECIAL)
OR iSpecialTex != GET_PED_TEXTURE_VARIATION(ped, PED_COMP_SPECIAL)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_SPECIAL, iSpecialDraw, iSpecialTex, GET_PED_PALETTE_VARIATION(ped, PED_COMP_SPECIAL))
ENDIF
ENDIF
ENDPROC
FUNC BOOL DOES_PLAYER_PREFER_VISOR_UP(INT iSlot = -1)
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_IS_VISOR_UP, iSlot)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
PROC SET_PLAYER_VISOR_PREFERENCE(BOOL bPreferVisorUp, INT iSlot = -1)
SET_MP_BOOL_CHARACTER_STAT(MP_STAT_IS_VISOR_UP, bPreferVisorUp, iSlot)
ENDPROC
FUNC BOOL IS_THIS_HELMET_VISOR_UP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
SWITCH ePedModel
// Freemode male
CASE MP_M_FREEMODE_01
SWITCH eType
CASE COMP_TYPE_PROPS
IF eItem >= PROPS_FMM_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_PROPS, 3), DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
// Freemode female
CASE MP_F_FREEMODE_01
SWITCH eType
CASE COMP_TYPE_PROPS
IF eItem >= PROPS_FMF_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_PROPS, 4), DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
FUNC PED_COMP_NAME_ENUM GET_LAST_UNDER_JACKET_ITEM(PED_INDEX ped, PED_COMP_NAME_ENUM eJBIBJacket)
IF g_eLastStoredCompName != DUMMY_PED_COMP
IF g_eLastStoredCompType = COMP_TYPE_JBIB
// Grab the correct SPECIAL for this top
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(ped), COMP_TYPE_JBIB, g_eLastStoredCompName)
PED_COMP_NAME_ENUM eSpecialForJBIB = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(GET_ENTITY_MODEL(ped), g_eLastStoredCompName, eJBIBJacket, g_sTempCompData[1].iTexture)
IF eSpecialForJBIB != DUMMY_PED_COMP
PRINTLN("GET_LAST_UNDER_JACKET_ITEM: COMP_TYPE_JBIB - Returning eSpecialForJBIB")
RETURN eSpecialForJBIB
ENDIF
ELIF g_eLastStoredCompType = COMP_TYPE_SPECIAL
// Try and grab the JBIB version so we can correct the SPECIAL component
PED_COMP_NAME_ENUM eJBIBFromSpecial = GET_JBIB_FROM_SPECIAL(GET_ENTITY_MODEL(ped), g_eLastStoredCompName, g_iLastStoredCompTexture)
IF eJBIBFromSpecial != DUMMY_PED_COMP
// Grab the correct SPECIAL for this top
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(ped), COMP_TYPE_JBIB, eJBIBFromSpecial)
PED_COMP_NAME_ENUM eSpecialForJBIB = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(GET_ENTITY_MODEL(ped), eJBIBFromSpecial, eJBIBJacket, g_sTempCompData[1].iTexture)
IF eSpecialForJBIB != DUMMY_PED_COMP
PRINTLN("GET_LAST_UNDER_JACKET_ITEM: COMP_TYPE_SPECIAL - Returning eSpecialForJBIB")
RETURN eSpecialForJBIB
ENDIF
ELSE
PRINTLN("GET_LAST_UNDER_JACKET_ITEM: COMP_TYPE_SPECIAL - g_eLastStoredCompName")
RETURN g_eLastStoredCompName
ENDIF
ENDIF
ENDIF
RETURN DUMMY_PED_COMP
ENDFUNC
PROC SET_LAST_UNDER_JACKET_ITEM(PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, INT iTexture, INT iTShirtDecalHash)
g_eLastStoredCompName = eItem
g_eLastStoredCompType = eType
g_iLastStoredCompTexture = iTexture
g_iLastStoredDecalHash = iTShirtDecalHash
PRINTLN("SET_LAST_UNDER_JACKET_ITEM(", GET_PED_COMP_TYPE_STRING(eType), ", ", eItem, ", ", iTexture, ", ", g_iLastStoredDecalHash, ")")
IF eItem != DUMMY_PED_COMP
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(PLAYER_PED_ID()), eType, eItem)
PRINTLN("...Drawable = ", g_sTempCompData[1].iDrawable)
PRINTLN("...Texture = ", g_sTempCompData[1].iTexture)
INT iRetNameHash
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT) AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_OVERCOAT_ACCS, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT) AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_GORKA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT)))
PRINTLN("...SET_LAST_UNDER_JACKET_ITEM : Invalid item 1 - clearing", "["
, IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT), ","
, IS_STRING_NULL_OR_EMPTY(g_sTempCompData[1].sLabel)
, "]")
g_eLastStoredCompName = DUMMY_PED_COMP
ELIF IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT)
AND NOT IS_STRING_NULL_OR_EMPTY(g_sTempCompData[1].sLabel)
AND GET_HASH_KEY(g_sTempCompData[1].sLabel) != GET_HASH_KEY("NO_LABEL")
PRINTLN("...SET_LAST_UNDER_JACKET_ITEM : [", g_sTempCompData[1].sLabel, "] ", GET_STRING_FROM_TEXT_FILE(g_sTempCompData[1].sLabel))
ELIF IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT)
AND GET_ALT_DLC_PED_COMP_OF_TYPE(g_iLastDLCItemNameHash, PED_COMP_JBIB, iRetNameHash)
PRINTLN("...SET_LAST_UNDER_JACKET_ITEM : [JBIB VARIANTS]")
ELSE
PRINTLN("...SET_LAST_UNDER_JACKET_ITEM : Invalid item 2 - clearing", "["
, IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT), ","
, IS_STRING_NULL_OR_EMPTY(g_sTempCompData[1].sLabel)
, "]")
g_eLastStoredCompName = DUMMY_PED_COMP
ENDIF
ELSE
PRINTLN("...SET_LAST_UNDER_JACKET_ITEM : Dummy item")
ENDIF
ENDPROC
/// PURPOSE: Sets the current component item for the ped
/// bPreviewing - if this is true we are previewing the item in shops / wardrobe
/// so if the item has a decal tattoo it will be equipped as temporary
/// bReEquipAccessories - this is used in MP to specify whether we skip the hair overlays
FUNC BOOL SET_PED_COMP_ITEM_CURRENT_MP(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bMustBeAvailable = TRUE, INT iPaletteOverride = -1, BOOL bUseGlobalOutfitData = FALSE, BOOL bPreviewing = FALSE, BOOL bReEquipAccessories = FALSE, INT iHairTint1 = -1, INT iHairTint2 = -1, INT iSlot = -1, Bool bBlockTorsoDecal = FALSE, BOOL bForceOnSpawning=FALSE, BOOL bSkipTorsoUpdate = FALSE) // bReEquipAccessories is actually bSkipHairOverlays
// B*1619600 - Handle signing out of PSN whilst in shop chair
// Rob B - should allow this in character select / create screen
IF NOT NETWORK_IS_GAME_IN_PROGRESS()
IF g_Private_HudState <> HUD_STATE_SELECT_CHARACTER_FM
AND g_Private_HudState <> HUD_STATE_CREATE_FACE
AND g_Private_HudState <> HUD_STATE_SELECTED_JOINING
RETURN FALSE
ENDIF
ENDIF
IF IS_PED_INJURED(ped)
OR eItem = DUMMY_PED_COMP
RETURN FALSE
ENDIF
// if this is the player respawning then no need to reset the items on the clone. 1977243
IF (ped = PLAYER_PED_ID())
AND (GlobalplayerBD[NATIVE_TO_INT(PLAYER_ID())].iRespawnState = RESPAWN_STATE_JOINING)
IF NOT (bForceOnSpawning)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : player is respawning, no need to set ped comp on clone. ")
RETURN(FALSE)
ELSE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : bForceOnSpawning = TRUE")
ENDIF
ENDIF
IF iSlot = -1
iSlot = g_iPedComponentSlot
ENDIF
// Set the depth so we can tell if we should be setting any requisites
g_iPedComponentNest++
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Process item, Depth=", g_iPedComponentNest, ", eType=", GET_PED_COMP_TYPE_STRING(eType), ", eItem=", eItem, " called by ", GET_THIS_SCRIPT_NAME())
INT i, j, k
PED_COMP_NAME_ENUM eRequisite
PED_COMP_NAME_ENUM eReturnItem
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
PED_COMP_NAME_ENUM eForcedTorso = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eForcedBerd = DUMMY_PED_COMP
// For restoring special and torso when we equip a JBIB.
PED_COMP_NAME_ENUM eRestoreSpecial = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eRestoreTorso = DUMMY_PED_COMP
INT iRestoreGloveType = -1
INT iRestoreGloveTexture = -1
IF bUseGlobalOutfitData = FALSE
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
// check ped can have this item
IF NOT CAN_PED_HAVE_PED_COMP_ITEM(bMustBeAvailable #IF IS_DEBUG_BUILD ,eItem, eType #ENDIF)
g_iPedComponentNest--
RETURN FALSE
ENDIF
// Don't set JBIB requisites as used in case we are re-using a component that can be accessed directly, i.e not a forced component.
IF eType = COMP_TYPE_JBIB
AND g_iPedComponentNest > 1
// Skip
ELSE
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, eType, eItem)
ENDIF
ENDIF
// ------------ OUTFITS---------------------------------------------------------
IF eType = COMP_TYPE_OUTFIT
INT iLastDLCNameItem = g_iLastDLCItemNameHash
INT iLastDLCLockHash = g_iLastDLCItemLockHash
// Always clear ped props so we dont go over prop limit
CLEAR_ALL_PED_PROPS(ped)
// get outfit info
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData
IF bUseGlobalOutfitData = TRUE
sOutfitData = g_sTempOutfitData
ELSE
sOutfitData= GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
ENDIF
// Set all the flagged component items
FOR i = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sOutfitData.eItems[i] <> DUMMY_PED_COMP
//-------DECL COMPONENT ITEM FOR OUTFIT---------------------------------------------
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) = COMP_TYPE_DECL
AND sOutfitData.bUsesTattooDecals
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_DECL, INT_TO_ENUM(PED_COMP_NAME_ENUM, 0))
IF iPaletteOverride = -1
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, GET_PED_PALETTE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i))))
ELSE
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, iPaletteOverride)
ENDIF
// Overlays for are managed in the shop and wardrobe scripts.
// set MP only data
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_DECL, INT_TO_ENUM(PED_COMP_NAME_ENUM, 0))
ENDIF
ELSE
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i])
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
OR INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) = COMP_TYPE_PROPGROUP // propgroups dont have stats
// -------PROP GROUP FOR OUTFIT---------------------------------
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) = COMP_TYPE_PROPGROUP
PED_COMP_PROPS_DATA_STRUCT sPropGroupData
IF bUseGlobalOutfitData = TRUE
sPropGroupData = g_sTempPropGroupData
ELSE
sPropGroupData= GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfitData.eItems[i])
ENDIF
// Set all the flagged props
FOR j = 0 TO NUMBER_OF_PED_PROP_TYPES-1
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[j])
SAFE_SET_PROP(ped, g_sTempCompData[1].ePropPos, g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
// set MP only data
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i])
ENDIF
ENDFOR
//-------COMPONENT ITEM FOR OUTFIT---------------------------------------------
ELIF INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) != COMP_TYPE_PROPS
AND INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) != COMP_TYPE_OUTFIT
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, i) != COMP_TYPE_BERD
IF iPaletteOverride = -1
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, GET_PED_PALETTE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i))))
ELSE
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, iPaletteOverride)
ENDIF
ELSE
SET_PED_COMP_ITEM_CURRENT_MP(ped,
INT_TO_ENUM(PED_COMP_TYPE_ENUM, i),
sOutfitData.eItems[i], FALSE)
ENDIF
// set MP only data
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i])
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF i != ENUM_TO_INT(COMP_TYPE_OUTFIT)
AND i != ENUM_TO_INT(COMP_TYPE_PROPS)
// Not required to set anything, but if current part is outfit only, grab the default
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), GET_PED_COMP_ITEM_CURRENT_MP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i)))
IF IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_OUTFIT_ONLY_BIT)
PED_COMP_OUTFIT_DATA_STRUCT sDefaultOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, OUTFIT_DEFAULT)
SET_PED_COMP_ITEM_CURRENT_MP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sDefaultOutfitData.eItems[i], FALSE)
ENDIF
ENDIF
ENDIF
ENDFOR
//Re-apply berd to fix hair issues.
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_BERD, GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_BERD))
g_iLastDLCItemNameHash = iLastDLCNameItem
g_iLastDLCItemLockHash = iLastDLCLockHash
// skip these for spawn outfits
IF bUseGlobalOutfitData = FALSE
#IF USE_TU_CHANGES
// remove crew logos
TATTOO_NAME_ENUM eCrewLogo
eCrewLogo = GET_CURRENT_CREW_LOGO_TATTOO()
IF eCrewLogo <> INVALID_TATTOO
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Removing crew logo tattoo as an outfit is being equipped!: ", eCrewLogo)
SET_MP_TATTOO_CURRENT(eCrewLogo, FALSE, iSlot)
ENDIF
// equip torso decals for this outfit
EQUIP_TORSO_DECALS_MP(ped, COMP_TYPE_JBIB, sOutfitData.eItems[COMP_TYPE_JBIB], bPreviewing)
#ENDIF
ENDIF
// ------PROP GROUP----------------------------------------------------------------
ELIF eType = COMP_TYPE_PROPGROUP
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, eItem)
// Set all the flagged props
FOR j = 0 TO NUMBER_OF_PED_PROP_TYPES-1
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[j])
SAFE_SET_PROP(ped, g_sTempCompData[1].ePropPos, g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
// set MP only data
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[j])
ENDIF
IF bUseGlobalOutfitData = FALSE // skip all requisites for spawn outfits
// Set any requisites for this item
IF g_iPedComponentNest = 1
REPEAT NUMBER_OF_PED_COMP_TYPES k
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[j], INT_TO_ENUM(PED_COMP_TYPE_ENUM, k))
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_MP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k), eRequisite, FALSE)
ENDIF
ENDREPEAT
ENDIF
ENDIF
ENDFOR
//------- PROP-------------------------------------------------------------------
ELIF eType = COMP_TYPE_PROPS
// // Remove props if we no longer want props.
// INT iCurrentBerdHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_BERD), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_BERD))
// IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iCurrentBerdHash, DLC_RESTRICTION_TAG_FORCE_PROP, ENUM_TO_INT(SHOP_PED_COMPONENT))
// PED_COMP_NAME_ENUM eCurrentBerd = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_BERD)
// eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, COMP_TYPE_BERD, eCurrentBerd, COMP_TYPE_PROPS, g_sTempCompData[1].ePropPos)
// IF eRequisite != DUMMY_PED_COMP
// AND eRequisite != eItem
// CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Force remove berd as we forced this on the last time we equipped prop ", eRequisite)
// eForcedBerd = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_BERD, -1)
// ENDIF
// ENDIF
SAFE_SET_PROP(ped, g_sTempCompData[1].ePropPos, g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
// set MP only data
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_AVAILABLE_BIT))
SET_MP_PED_COMP_ITEM_NO_LONGER_NEW(ePedModel, eType, eItem)
ENDIF
// Update hair scale.
IF g_sTempCompData[1].ePropPos = ANCHOR_HEAD
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_SHRINK_HAIR, ENUM_TO_INT(SHOP_PED_PROP))
// Ignore, requsite will force on hair shrink berd.
ELSE
// Remove hair shrink berd
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, PED_COMP_BERD, DLC_RESTRICTION_TAG_HAIR_SHRINK)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Removing hair shrinker")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_BERD, BERD_FMM_0_0, FALSE)
// Re-grab the data.
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
ENDIF
ENDIF
ENDIF
// Update jbib for hooded jacket.
IF (g_sTempCompData[1].ePropPos = ANCHOR_HEAD)
UPDATE_PED_HOOD_STATE(ped)
ENDIF
IF bUseGlobalOutfitData = FALSE // skip all requisites for spawn outfits
// Set any requisites for this item
IF g_iPedComponentNest = 1
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Start prop requisites")
REPEAT NUMBER_OF_PED_COMP_TYPES k
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, eType, eItem, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k))
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_MP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k), eRequisite, FALSE)
ENDIF
ENDREPEAT
// Props only ever deal with ANCHOR_HEAD so check ANCHOR_EYES now too for scuba suits.
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, eType, eItem, COMP_TYPE_PROPS, ANCHOR_EYES)
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_PROPS, eRequisite, FALSE)
ENDIF
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : End prop requisites")
ENDIF
ENDIF
// ---------COMPONENT ITEM---------------------------------------------------------------
ELSE
// Force remove items if we detect a change
PED_COMPONENT ePedComponent = GET_PED_COMPONENT_FROM_TYPE(eType)
IF GET_PED_DRAWABLE_VARIATION(ped, ePedComponent) != g_sTempCompData[1].iDrawable
OR GET_PED_TEXTURE_VARIATION(ped, ePedComponent) != g_sTempCompData[1].iTexture
INT iDLCSpecialHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_SPECIAL), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_SPECIAL), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_SPECIAL))
INT iDLCTeethHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_TEETH), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_TEETH), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_TEETH))
// Remove TEETH
IF (eType = COMP_TYPE_JBIB AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTeethHash, DLC_RESTRICTION_TAG_REMOVE_WITH_JBIB, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (eType = COMP_TYPE_SPECIAL AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTeethHash, DLC_RESTRICTION_TAG_REMOVE_WITH_SPECIAL, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (eType = COMP_TYPE_LEGS AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTeethHash, DLC_RESTRICTION_TAG_REMOVE_WITH_LEGS, ENUM_TO_INT(SHOP_PED_COMPONENT)))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Teeth to be force removed")
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_TEETH, 0, 0, GET_PED_PALETTE_VARIATION(ped, PED_COMP_TEETH))
ENDIF
// Remove SPECIAL
IF (eType = COMP_TYPE_JBIB AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCSpecialHash, DLC_RESTRICTION_TAG_REMOVE_WITH_JBIB, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (eType = COMP_TYPE_LEGS AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCSpecialHash, DLC_RESTRICTION_TAG_REMOVE_WITH_LEGS, ENUM_TO_INT(SHOP_PED_COMPONENT)))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special to be force removed")
IF ePedModel = MP_M_FREEMODE_01
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_SPECIAL, 15, 0, GET_PED_PALETTE_VARIATION(ped, PED_COMP_SPECIAL))
ELIF ePedModel = MP_F_FREEMODE_01
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_SPECIAL, 2, 0, GET_PED_PALETTE_VARIATION(ped, PED_COMP_SPECIAL))
ENDIF
ENDIF
ENDIF
// If we are changing to a jacket JBIB, set the SPECIAL version for the current JBIB.
IF eType = COMP_TYPE_JBIB
IF bUseGlobalOutfitData = FALSE // skip all requisites for spawn outfits
INT iDLCJbibHash = -1
// set crew col
IF (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_IS_DLC_BIT))
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_CREW_COL, ENUM_TO_INT(PED_COMP_JBIB))
SET_HEAD_BLEND_PALETTE_COLOR(ped, g_Private_LocalPlayerCrew_Colour_Red, g_Private_LocalPlayerCrew_Colour_Green, g_Private_LocalPlayerCrew_Colour_Blue, 0 ) // sleeves
SET_HEAD_BLEND_PALETTE_COLOR(ped, g_Private_LocalPlayerCrew_Colour_Red, g_Private_LocalPlayerCrew_Colour_Green, g_Private_LocalPlayerCrew_Colour_Blue, 1 ) // body
SET_HEAD_BLEND_PALETTE_COLOR(ped, g_Private_LocalPlayerCrew_Colour_Red, g_Private_LocalPlayerCrew_Colour_Green, g_Private_LocalPlayerCrew_Colour_Blue, 2 ) // collar
SET_HEAD_BLEND_PALETTE_COLOR(ped, g_Private_LocalPlayerCrew_Colour_Red, g_Private_LocalPlayerCrew_Colour_Green, g_Private_LocalPlayerCrew_Colour_Blue, 3 ) // body
ENDIF
PED_COMP_NAME_ENUM eCurrentJBIB = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB)
PED_COMP_NAME_ENUM eCurrentSpecial = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_SPECIAL)
PED_COMP_NAME_ENUM eCurrentLegs = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_LEGS)
// Restore body warmer?
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, PED_COMP_SPECIAL, DLC_RESTRICTION_TAG_OVER_JACKET)
// If we are trying on one of these items don't bother re-applying the body armour
IF ePedModel = MP_M_FREEMODE_01
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 3)
ELIF ePedModel = MP_F_FREEMODE_01
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 4)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SILK_ROBE, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SILK_PYJAMAS, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SMOKING_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SANTA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_MORPH_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_GORKA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_CAT_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
// skip
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Removing utility vest")
ELSE
eRestoreSpecial = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_SPECIAL)
ENDIF
ENDIF
// Restore gloves?
INT iCurrentTorsoHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_TORSO), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_TORSO), 0)// The lookup only deals with texture 0 so we need to work out correct hash later.
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iCurrentTorsoHash, DLC_RESTRICTION_TAG_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
PED_COMP_NAME_ENUM eNoGlovesTorso = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, eCurrentSpecial, eCurrentJbib, eCurrentLegs)
IF eNoGlovesTorso = DUMMY_PED_COMP
eNoGlovesTorso = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, COMP_TYPE_JBIB, eCurrentJbib, COMP_TYPE_TORSO)
ENDIF
// Flapper dress force gloves, not a torso, so we need to convert.
SWITCH iCurrentTorsoHash
CASE HASH("DLC_MP_VAL_F_UPPR0_0")
CASE HASH("DLC_MP_VAL_F_UPPR0_1")
CASE HASH("DLC_MP_VAL_F_UPPR0_2")
CASE HASH("DLC_MP_VAL_F_UPPR0_3")
CASE HASH("DLC_MP_VAL_F_UPPR0_4")
CASE HASH("DLC_MP_VAL_F_UPPR0_5")
eNoGlovesTorso = TORSO_FMF_11_0
// If this item isn't a dress we should clear the dress gloves.
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 4)
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
eNoGlovesTorso = DUMMY_PED_COMP
ENDIF
BREAK
ENDSWITCH
IF eNoGlovesTorso != DUMMY_PED_COMP
INT iGlove
REPEAT NUMBER_OF_GLOVE_TYPES iGlove
IF GET_DLC_GLOVE_HASH_FOR_UPPR(ePedModel, ENUM_TO_INT(eNoGlovesTorso), iGlove) = iCurrentTorsoHash
iRestoreGloveType = iGlove
iRestoreGloveTexture = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_TORSO)
ENDIF
ENDREPEAT
ENDIF
ENDIF
iDLCJbibHash = -1
// If we are trying on a waistcoat try and grab the waistcoat shirt.
IF ePedModel = MP_F_FREEMODE_01 AND eItem >= JBIB_FMF_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 4), DLC_RESTRICTION_TAG_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
eCurrentJBIB = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB)
IF eCurrentJBIB >= JBIB_FMF_DLC
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentJBIB, COMP_TYPE_JBIB, 4)
ENDIF
IF eCurrentJBIB >= JBIB_FMF_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_VEST_SHIRT, ENUM_TO_INT(SHOP_PED_COMPONENT))
PED_COMP_NAME_ENUM eSpecialComp = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eCurrentJBIB, eItem, GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB))
IF (eSpecialComp != DUMMY_PED_COMP)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : JBIB->SPECIAL : Changing shirt to waistcoat shirt, eSpecialComp=", eSpecialComp)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, eSpecialComp, FALSE, iPaletteOverride)
// We can't set requisites for this item as it may get cleared if the JBIB has a requisite of the same time.
// To get around this we use GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO once the main item has been set.
// rebuild temp data for this item...
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
ENDIF
ENDIF
ELIF IS_JBIB_COMPONENT_A_JACKET(ePedModel, eItem)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Item is a jacket")
IF ePedModel = MP_M_FREEMODE_01
IF eCurrentJBIB >= JBIB_FMM_DLC
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentJBIB, COMP_TYPE_JBIB, 3)
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
IF eCurrentJBIB >= JBIB_FMF_DLC
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentJBIB, COMP_TYPE_JBIB, 4)
ENDIF
ENDIF
// Remove body warmer
eRestoreSpecial = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Removing body armour [1]")
IF NOT IS_JBIB_COMPONENT_A_JACKET(ePedModel, eCurrentJBIB)
IF ePedModel = MP_F_FREEMODE_01 AND eCurrentJBIB >= JBIB_FMF_DLC AND (DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT)) OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_VEST_SHIRT, ENUM_TO_INT(SHOP_PED_COMPONENT)))
// If we have a vest or vest shirt on we need to force a valid item.
ELIF ePedModel = MP_F_FREEMODE_01 AND eCurrentJBIB >= JBIB_FMF_DLC
AND (DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_11, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_12, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_STUNT_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
)
/*OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_10, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_11, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_12, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_13, ENUM_TO_INT(SHOP_PED_COMPONENT))*/
// If we don't have a compatible special we need to force a valid item.
ELSE
PED_COMP_NAME_ENUM eLastStoredUnderJacketItem = GET_LAST_UNDER_JACKET_ITEM(ped, eItem)
PED_COMP_NAME_ENUM eSpecialComp = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eCurrentJBIB, eItem, GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB))
IF (eSpecialComp != DUMMY_PED_COMP)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : JBIB->SPECIAL : Changing top to jacket top, eSpecialComp=", eSpecialComp)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, eSpecialComp, FALSE, iPaletteOverride)
// We can't set requisites for this item as it may get cleared if the JBIB has a requisite of the same time.
// To get around this we use GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO once the main item has been set.
// rebuild temp data for this item...
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
// Clear the body warmer component so we don't attempt to restore
eRestoreSpecial = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Removing body armour [2]")
ELIF eLastStoredUnderJacketItem != DUMMY_PED_COMP
AND (ped = PLAYER_PED_ID() OR ped = g_pShopClonePed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Restoring last under jacket item")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, eLastStoredUnderJacketItem, FALSE, iPaletteOverride)
// rebuild temp data for this item...
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
ELSE
IF ePedModel = MP_M_FREEMODE_01
PED_COMP_NAME_ENUM eJbibVersion
eJbibVersion = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_JBIB, -1)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_JBIB, eJbibVersion)
eSpecialComp = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eJbibVersion, eItem, g_sTempCompData[1].iTexture)
INT iItemDLCHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 3)
IF (eSpecialComp = DUMMY_PED_COMP)
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemDLCHash, DLC_RESTRICTION_TAG_BIKER_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemDLCHash, DLC_RESTRICTION_TAG_OPEN_SHORT, ENUM_TO_INT(SHOP_PED_COMPONENT))
eSpecialComp = SPECIAL_FMM_15_0
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 4), DLC_RESTRICTION_TAG_BIKER_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
eSpecialComp = SPECIAL_FMF_15_0
ELSE
eSpecialComp = SPECIAL_FMF_4_14
ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : JBIB->SPECIAL : Setting default top for this jacket, eSpecialComp=", eSpecialComp)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, eSpecialComp, FALSE, iPaletteOverride)
// rebuild temp data for this item...
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
ENDIF
ENDIF
ELSE
// If we are changing from a jacket to a jacket we need to make sure the special is updated to match.
INT iDraw1, iDraw2, iSpecialVariation
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_JBIB, eCurrentJBIB)
iDraw1 = g_sTempCompData[1].iDrawable
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_JBIB, eItem)
iDraw2 = g_sTempCompData[1].iDrawable
IF iDraw1 != iDraw2
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Changing jacket, update special, eCurrentSpecial=", eCurrentSpecial)
// try using cached top.
PED_COMP_NAME_ENUM eLastStoredUnderJacketItem = GET_LAST_UNDER_JACKET_ITEM(ped, eItem)
// work out the jbib version of the current special item
PED_COMP_NAME_ENUM eJbibVersion
PED_COMP_NAME_ENUM eSpecialComp// = DUMMY_PED_COMP <TO LATE TO SET THIS TO DUMMY FOR BIKER BUT WE SHOULD CHANGE NEXT PACK !>
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_SPECIAL, eCurrentSpecial)
iSpecialVariation = g_sTempCompData[1].iTexture
eJbibVersion = GET_JBIB_FROM_SPECIAL(ePedModel, eCurrentSpecial, iSpecialVariation)
IF eLastStoredUnderJacketItem != DUMMY_PED_COMP
AND (ped = PLAYER_PED_ID() OR ped = g_pShopClonePed)
eSpecialComp = eLastStoredUnderJacketItem
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Restoring last under jacket item")
ELIF eJbibVersion = DUMMY_PED_COMP
eSpecialComp = eCurrentSpecial
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special doesn't have a JBIB version")
// if male equipping leather jacket- we need to replace the special item
IF ePedModel = MP_M_FREEMODE_01
INT iItemDLCHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 3)
IF (eItem >= JBIB_FMM_6_0 AND eItem <= JBIB_FMM_6_11)
OR (GET_DLC_DRAW_TAG(iItemDLCHash) = 6)
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemDLCHash, DLC_RESTRICTION_TAG_BIKER_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special not compatible with leather jacket, set default")
eJbibVersion = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_JBIB, -1)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_JBIB, eJbibVersion)
eSpecialComp = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eJbibVersion, eItem, g_sTempCompData[1].iTexture)
ENDIF
ENDIF
// if female equipping open jacket- we need to replace the special item
IF ePedModel = MP_F_FREEMODE_01
AND (eCurrentSpecial = SPECIAL_FMF_2_0 OR eCurrentSpecial = SPECIAL_FMF_3_0 OR eCurrentSpecial = SPECIAL_FMF_14_0)
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 4), DLC_RESTRICTION_TAG_JACKET_ONLY, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special not compatible with open jacket, set default")
eJbibVersion = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_JBIB, -1)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_JBIB, eJbibVersion)
eSpecialComp = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eJbibVersion, eItem, g_sTempCompData[1].iTexture)
ENDIF
ENDIF
// if special is for use under jackets we need to replace the special item
INT iSpecialDLCHash = -1
IF ePedModel = MP_M_FREEMODE_01
iSpecialDLCHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentSpecial, COMP_TYPE_SPECIAL, 3)
ELIF ePedModel = MP_F_FREEMODE_01
iSpecialDLCHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentSpecial, COMP_TYPE_SPECIAL, 4)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialDLCHash, DLC_RESTRICTION_TAG_OVERCOAT_ACCS, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Jacket not compatible with overcoat accs, set default")
eJbibVersion = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_JBIB, -1)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_JBIB, eJbibVersion)
eSpecialComp = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eJbibVersion, eItem, g_sTempCompData[1].iTexture)
ENDIF
ELSE
// convert to new special under the new jacket
eSpecialComp = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eJbibVersion, eItem, iSpecialVariation)
// if male equipping open check shirt- we need to replace the special item if it doesn't work with the legs
IF ePedModel = MP_M_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 3), DLC_RESTRICTION_TAG_LOW2_OPEN_CHECK, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF NOT DO_JBIB_AND_LEGS_CHECK_MP(ePedModel, GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_LEGS), eJbibVersion)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special not compatible with jacket, set bare chest")
eSpecialComp = SPECIAL_FMM_15_0
ENDIF
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 4), DLC_RESTRICTION_TAG_LOW2_OPEN_CHECK, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF NOT DO_JBIB_AND_LEGS_CHECK_MP(ePedModel, GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_LEGS), eJbibVersion)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special not compatible with jacket, set grey tank")
eSpecialComp = SPECIAL_FMF_4_14
ENDIF
ENDIF
ENDIF
ENDIF
IF (eSpecialComp != DUMMY_PED_COMP)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special compatible, eSpecialComp=", eSpecialComp)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, eSpecialComp, FALSE, iPaletteOverride)
ELSE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special not compatible with jacket, set default")
IF ePedModel = MP_M_FREEMODE_01
eJbibVersion = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_JBIB, -1)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_JBIB, eJbibVersion)
eSpecialComp = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eJbibVersion, eItem, g_sTempCompData[1].iTexture)
IF (eSpecialComp = DUMMY_PED_COMP)
eSpecialComp = SPECIAL_FMM_15_0
ENDIF
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, eSpecialComp, FALSE, iPaletteOverride)
ELIF ePedModel = MP_F_FREEMODE_01
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, SPECIAL_FMF_4_14, FALSE, iPaletteOverride)
ENDIF
ENDIF
// rebuild temp data for this item...
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
ENDIF
ENDIF
ENDIF
#IF USE_TU_CHANGES
// equipping a jbib that is not a jacket, check if we need to remove a crew logo
HANDLE_CREW_LOGO_TATTOOS(ePedModel, eItem)
// We don't have correct rules set up for the decl components so we always remove when switching top.
// Any outfits that use decl will need to ensure the decl is hooked up to the jbibs forced components.
IF NOT bSkipTorsoUpdate
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, 0, 0, GET_PED_PALETTE_VARIATION(ped, PED_COMP_DECL))
ENDIF
#ENDIF
ENDIF
// equip any torso decals for this jbib (tattoos)
EQUIP_TORSO_DECALS_MP(ped, eType, eItem, bPreviewing)
IF bUseGlobalOutfitData = FALSE // skip all requisites for spawn outfits
// In some cases we need to force another TORSO to match the current SPECIAL and JBIB combo,
// so grab this here and apply AFTER we do the requisistes.
eForcedTorso = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, GET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL), eItem, GET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS))
ENDIF
ELIF eType = COMP_TYPE_HAIR
IF bUseGlobalOutfitData = FALSE // skip all requisites for spawn outfits
IF iHairTint1 = -1
iHairTint1 = GET_MP_INT_CHARACTER_STAT(MP_STAT_HAIR_TINT, iSlot)
ENDIF
IF iHairTint2 = -1
iHairTint2 = GET_MP_INT_CHARACTER_STAT(MP_STAT_SEC_HAIR_TINT, iSlot)
ENDIF
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Setting hair tint, iHairTint1=", iHairTint1, ", iHairTint2=", iHairTint2, ", iSlot=", iSlot, " [", g_sTempCompData[1].iDrawable, ", ", g_sTempCompData[1].iTexture, "]")
DEBUG_PRINTCALLSTACK()
SET_PED_HAIR_TINT(ped, iHairTint1, iHairTint2)
ENDIF
IF bReEquipAccessories = FALSE // if we're doing the hair overlays
IF (eItem != DUMMY_PED_COMP)
PED_COMP_NAME_ENUM eGRHairItem
eGRHairItem = DUMMY_PED_COMP
IF (ePedModel = MP_M_FREEMODE_01)
eGRHairItem = GET_MALE_HAIR(eItem)
ELIF (ePedModel = MP_F_FREEMODE_01)
eGRHairItem = GET_FEMALE_HAIR(eItem)
ENDIF
IF (eGRHairItem != DUMMY_PED_COMP)
AND (eItem != eGRHairItem)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP gr_hair: replacing hair enum ", eItem, " with gunrunning hair enum ", eGRHairItem)
eItem = eGRHairItem
ENDIF
ENDIF
EQUIP_HAIR_OVERLAY_MP(ped, eItem, iSlot, bBlockTorsoDecal)
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
// Restore gloves?
INT iCurrentTorsoHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_TORSO), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_TORSO), 0)// The lookup only deals with texture 0 so we need to work out correct hash later.
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iCurrentTorsoHash, DLC_RESTRICTION_TAG_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
PED_COMP_NAME_ENUM eCurrentJBIB = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB)
PED_COMP_NAME_ENUM eCurrentLegs = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_LEGS)
PED_COMP_NAME_ENUM eNoGlovesTorso = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, eItem, eCurrentJbib, eCurrentLegs)
IF eNoGlovesTorso = DUMMY_PED_COMP
eNoGlovesTorso = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, COMP_TYPE_JBIB, eCurrentJbib, COMP_TYPE_TORSO)
ENDIF
// Flapper dress force gloves, not a torso, so we need to convert.
SWITCH iCurrentTorsoHash
CASE HASH("DLC_MP_VAL_F_UPPR0_0")
CASE HASH("DLC_MP_VAL_F_UPPR0_1")
CASE HASH("DLC_MP_VAL_F_UPPR0_2")
CASE HASH("DLC_MP_VAL_F_UPPR0_3")
CASE HASH("DLC_MP_VAL_F_UPPR0_4")
CASE HASH("DLC_MP_VAL_F_UPPR0_5")
eNoGlovesTorso = TORSO_FMF_11_0
// If this item isn't a dress we should clear the dress gloves.
INT iDLCJbibHash
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 4)
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
eNoGlovesTorso = DUMMY_PED_COMP
ENDIF
BREAK
ENDSWITCH
IF eNoGlovesTorso != DUMMY_PED_COMP
INT iGlove
REPEAT NUMBER_OF_GLOVE_TYPES iGlove
IF GET_DLC_GLOVE_HASH_FOR_UPPR(ePedModel, ENUM_TO_INT(eNoGlovesTorso), iGlove) = iCurrentTorsoHash
iRestoreGloveType = iGlove
iRestoreGloveTexture = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_TORSO)
ENDIF
ENDREPEAT
ENDIF
ENDIF
// equip any torso decals for this special (tattoos)
EQUIP_TORSO_DECALS_MP(ped, eType, eItem, bPreviewing)
#IF USE_TU_CHANGES
PED_COMP_NAME_ENUM eJacketJbib = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB)
IF IS_JBIB_COMPONENT_A_JACKET(ePedModel, eJacketJbib)
// see if we need to remove any crew logo tattoos (only if player wearing a jacket)
PED_COMP_NAME_ENUM eJbibFromSpecial
eJbibFromSpecial = GET_JBIB_FROM_SPECIAL(ePedModel, eItem, g_sTempCompData[1].iTexture)
HANDLE_CREW_LOGO_TATTOOS(ePedModel, eJbibFromSpecial)
ENDIF
#ENDIF
IF bUseGlobalOutfitData = FALSE // skip all requisites for spawn outfits
// In some cases we need to force another TORSO to match the current SPECIAL and JBIB combo,
// so grab this here and apply AFTER we do the requisistes.
eForcedTorso = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, eItem, GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB), GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_LEGS))
ENDIF
ELIF eType = COMP_TYPE_SPECIAL2
IF (eItem >= SPECIAL2_FMM_1_0 AND eItem <= SPECIAL2_FMM_9_0)
// need to check if we need to remove the player's chain
PED_COMP_NAME_ENUM eCurrentTeethItem
eCurrentTeethItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_TEETH)
IF NOT DO_TEETH_CHECK_MP(ePedModel, eCurrentTeethItem, COMP_TYPE_SPECIAL2, DUMMY_PED_COMP, DUMMY_PED_COMP, DUMMY_PED_COMP, ped, DEFAULT, eItem)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Remove chain for special2 item")
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(COMP_TYPE_TEETH), 0, 0)
ENDIF
ENDIF
ELIF eType = COMP_TYPE_BERD
IF (ePedModel = MP_M_FREEMODE_01 AND eItem >= BERD_FMM_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_SHRINK_HEAD, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (ePedModel = MP_F_FREEMODE_01 AND eItem >= BERD_FMF_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_SHRINK_HEAD, ENUM_TO_INT(SHOP_PED_COMPONENT)))
#IF NOT IS_NEXTGEN_BUILD
INT iSlot = -1
#ENDIF
INT tex0, tex1, tex2
tex0 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_TEX0, iSlot)
tex1 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_TEX1, iSlot)
tex2 = GET_MP_INT_CHARACTER_STAT(MP_STAT_MESH_TEX2, iSlot)
FLOAT texBlend
texBlend = GET_MP_FLOAT_CHARACTER_STAT(MP_STAT_MESH_TEXBLEND, iSlot)
IF (ePedModel = MP_M_FREEMODE_01)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Force male head to small - Berd item needs a shrunken head (tex: ", tex0, ", ", tex1, ", ", tex2, ": ", texBlend, "), \" hash:", g_iLastDLCItemNameHash, "\"")
SET_PED_HEAD_BLEND_DATA(ped, 0,0,0, tex0, tex1, tex2, 0.0, texBlend, 0.0)
ELIF (ePedModel = MP_F_FREEMODE_01)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Force female head to small - Berd item needs a shrunken head (tex: ", tex0, ", ", tex1, ", ", tex2, ": ", texBlend, "), \" hash:", g_iLastDLCItemNameHash, "\"")
#IF NOT IS_NEXTGEN_BUILD
SET_PED_HEAD_BLEND_DATA(ped, 14,0,0, tex0, tex1, tex2, 0.0, texBlend, 0.0)
#ENDIF
#IF IS_NEXTGEN_BUILD
SET_PED_HEAD_BLEND_DATA(ped, 21,0,0, tex0, tex1, tex2, 0.0, texBlend, 0.0)
#ENDIF
ENDIF
#IF NOT IS_NEXTGEN_BUILD
SET_PED_HEAD_BLEND_HAS_GRANDPARENTS(ped, FALSE)
#ENDIF
#IF IS_NEXTGEN_BUILD
MICRO_MORPH_TYPE microMorph
REPEAT ciCHARACTER_CREATOR_MAX_MICRO_MORPH microMorph
SET_PED_MICRO_MORPH(ped, microMorph, 0.0)
ENDREPEAT
#ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Force head to normal - Berd item is doesn't need a shrunken head, \" hash:", g_iLastDLCItemNameHash, "\"")
RESET_PLAYER_HEAD_BLEND_TO_NORM(ped, iSlot)
ENDIF
// // Remove props if we no longer want props.
// INT iCurrentBerdHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_BERD), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_BERD))
// INT iNextBerdHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_BERD), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
//
// IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iCurrentBerdHash, DLC_RESTRICTION_TAG_FORCE_PROP, ENUM_TO_INT(SHOP_PED_COMPONENT))
// IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iNextBerdHash, DLC_RESTRICTION_TAG_FORCE_PROP, ENUM_TO_INT(SHOP_PED_COMPONENT))
//
// PED_COMP_NAME_ENUM eCurrentBerd = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_BERD)
// PED_PROP_POSITION ePropPos
// REPEAT NUM_PLAYER_PED_PROPS ePropPos
// eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, eType, eCurrentBerd, COMP_TYPE_PROPS, ePropPos)
//
// PED_COMP_NAME_ENUM eCurrentProp
// eCurrentProp = GET_PED_PROP_CURRENT_FROM_LOOKUP(ped, ePropPos)
//
// IF eRequisite = eCurrentProp
// CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Force remove prop as we forced this on the last time we equipped berd ", eCurrentBerd)
// CLEAR_PED_PROP(ped, ePropPos)
// ENDIF
// ENDREPEAT
// ENDIF
// ENDIF
ELIF eType = COMP_TYPE_LEGS
// Validate the accs.
PED_COMP_NAME_ENUM eCurrentJBIB = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB)
PED_COMP_NAME_ENUM eCurrentSpecial = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_SPECIAL)
// if male equipping open check shirt- we need to replace the special item if it doesn't work with the legs
IF ePedModel = MP_M_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentJBIB, COMP_TYPE_JBIB, 3), DLC_RESTRICTION_TAG_LOW2_OPEN_CHECK, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF NOT DO_JBIB_AND_LEGS_CHECK_MP(ePedModel, eItem, GET_JBIB_FROM_SPECIAL(ePedModel, eCurrentSpecial, 0))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special not compatible with these legs and open check shirt, set bare chest")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, SPECIAL_FMM_15_0, FALSE, iPaletteOverride)
// rebuild temp data for this item...
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
ENDIF
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentJBIB, COMP_TYPE_JBIB, 4), DLC_RESTRICTION_TAG_LOW2_OPEN_CHECK, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF NOT DO_JBIB_AND_LEGS_CHECK_MP(ePedModel, eItem, GET_JBIB_FROM_SPECIAL(ePedModel, eCurrentSpecial, 0))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Special not compatible with these legs and open check shirt, set grey tank")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, SPECIAL_FMM_4_14, FALSE, iPaletteOverride)
// rebuild temp data for this item...
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
ENDIF
ENDIF
ENDIF
IF bUseGlobalOutfitData = FALSE // skip all requisites for spawn outfits
// In some cases we need to force another TORSO to match the current SPECIAL and JBIB combo,
// so grab this here and apply AFTER we do the requisistes.
eForcedTorso = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_SPECIAL), GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB), eItem)
ENDIF
// Restore gloves?
INT iCurrentTorsoHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_TORSO), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_TORSO), 0)// The lookup only deals with texture 0 so we need to work out correct hash later.
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iCurrentTorsoHash, DLC_RESTRICTION_TAG_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
PED_COMP_NAME_ENUM eNoGlovesTorso = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, eCurrentSpecial, eCurrentJbib, eItem)
IF eNoGlovesTorso = DUMMY_PED_COMP
eNoGlovesTorso = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, COMP_TYPE_JBIB, eCurrentJbib, COMP_TYPE_TORSO)
ENDIF
// Flapper dress force gloves, not a torso, so we need to convert.
SWITCH iCurrentTorsoHash
CASE HASH("DLC_MP_VAL_F_UPPR0_0")
CASE HASH("DLC_MP_VAL_F_UPPR0_1")
CASE HASH("DLC_MP_VAL_F_UPPR0_2")
CASE HASH("DLC_MP_VAL_F_UPPR0_3")
CASE HASH("DLC_MP_VAL_F_UPPR0_4")
CASE HASH("DLC_MP_VAL_F_UPPR0_5")
eNoGlovesTorso = TORSO_FMF_11_0
// If this item isn't a dress we should clear the dress gloves.
INT iDLCJbibHash
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_JBIB, 4)
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
eNoGlovesTorso = DUMMY_PED_COMP
ENDIF
BREAK
ENDSWITCH
IF eNoGlovesTorso != DUMMY_PED_COMP
INT iGlove
REPEAT NUMBER_OF_GLOVE_TYPES iGlove
IF GET_DLC_GLOVE_HASH_FOR_UPPR(ePedModel, ENUM_TO_INT(eNoGlovesTorso), iGlove) = iCurrentTorsoHash
iRestoreGloveType = iGlove
iRestoreGloveTexture = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_TORSO)
ENDIF
ENDREPEAT
ENDIF
ENDIF
ENDIF
IF iPaletteOverride = -1
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, GET_PED_PALETTE_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType)))
ELSE
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture, iPaletteOverride)
ENDIF
IF bUseGlobalOutfitData = FALSE // skip all requisites for spawn outfits
// Set any requisites for this item
IF g_iPedComponentNest = 1
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Start component requisite, eType=", GET_PED_COMP_TYPE_STRING(eType))
REPEAT NUMBER_OF_PED_COMP_TYPES k
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, eType, eItem, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k))
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_MP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, k), eRequisite, FALSE, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, (eType = COMP_TYPE_DECL))
IF INT_TO_ENUM(PED_COMP_TYPE_ENUM, k) = COMP_TYPE_TORSO
SWITCH g_iLastDLCItemNameHash
CASE HASH("DLC_MP_VAL_F_UPPR0_0")
CASE HASH("DLC_MP_VAL_F_UPPR0_1")
CASE HASH("DLC_MP_VAL_F_UPPR0_2")
CASE HASH("DLC_MP_VAL_F_UPPR0_3")
CASE HASH("DLC_MP_VAL_F_UPPR0_4")
CASE HASH("DLC_MP_VAL_F_UPPR0_5")
iRestoreGloveType = -1
BREAK
ENDSWITCH
ELIF INT_TO_ENUM(PED_COMP_TYPE_ENUM, k) = COMP_TYPE_SPECIAL
IF (eForcedTorso != DUMMY_PED_COMP)
eForcedTorso = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, eRequisite, GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_JBIB), GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_LEGS))
ENDIF
ENDIF
ENDIF
ENDREPEAT
// Props only ever deal with ANCHOR_HEAD so check ANCHOR_EYES now too for scuba suits.
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, eType, eItem, COMP_TYPE_PROPS, ANCHOR_EYES)
IF eRequisite != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_PROPS, eRequisite, FALSE)
ENDIF
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : End component requisites")
ENDIF
IF eType = COMP_TYPE_JBIB
OR eType = COMP_TYPE_SPECIAL
OR eType = COMP_TYPE_LEGS
// update armour
IF IS_PED_WEARING_ARMOUR(ped)
PED_COMP_NAME_ENUM eBodyArmour = GET_BODY_ARMOUR_FOR_JBIB(ped, ePedModel, eType, eItem)
IF eBodyArmour > INT_TO_ENUM(PED_COMP_NAME_ENUM, 0)
eBodyArmour += INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_PED_TEXTURE_VARIATION(ped, PED_COMP_SPECIAL2))
IF NOT IS_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL2, eBodyArmour)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL2, eBodyArmour, FALSE, iPaletteOverride)
ENDIF
ELSE
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL2, INT_TO_ENUM(PED_COMP_NAME_ENUM, 0), FALSE, iPaletteOverride)
ENDIF
// Remove armour if we are wearing body warmer.
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, PED_COMP_SPECIAL, DLC_RESTRICTION_TAG_OVER_JACKET)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Removing body armour for utility vest")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL2, INT_TO_ENUM(PED_COMP_NAME_ENUM, 0), FALSE, iPaletteOverride)
ENDIF
ENDIF
ENDIF
IF eType = COMP_TYPE_JBIB
OR eType = COMP_TYPE_SPECIAL
// update parachute pack
INT iBagIndex = GET_MP_INT_CHARACTER_STAT(MP_STAT_PARACHUTE_CURRENT_PACK)
IF GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_HAND) != 0
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_HAND, GET_PARACHUTE_DRAWABLE_FOR_MP(ped, iBagIndex), GET_PARACHUTE_TEXTURE_FOR_MP(ped, iBagIndex), GET_PARACHUTE_PALETTE_FOR_MP(ped, iBagIndex))
ENDIF
IF ped = PLAYER_PED_ID()
SET_PLAYER_PARACHUTE_VARIATION_OVERRIDE(PLAYER_ID(), PED_COMP_HAND, GET_PARACHUTE_DRAWABLE_FOR_MP(PLAYER_PED_ID(), iBagIndex), GET_PARACHUTE_TEXTURE_FOR_MP(PLAYER_PED_ID(), iBagIndex))
SET_PLAYER_PARACHUTE_PACK_TINT_INDEX(PLAYER_ID(), GET_PARACHUTE_PALETTE_FOR_MP(PLAYER_PED_ID(), iBagIndex))
SET_MP_PARACHUTE_BAG_OVERRIDE(PLAYER_ID(), iBagIndex)
ENDIF
ENDIF
IF eType = COMP_TYPE_TEETH
// Remove armour if we are wearing big chain.
IF (ePedModel = MP_M_FREEMODE_01 AND eItem >= TEETH_FMM_DLC)
OR (ePedModel = MP_F_FREEMODE_01 AND eItem >= TEETH_FMF_DLC)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(g_iLastDLCItemNameHash, DLC_RESTRICTION_TAG_BIG_CHAIN, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Removing body armour for big chain")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL2, INT_TO_ENUM(PED_COMP_NAME_ENUM, 0), FALSE, iPaletteOverride)
ENDIF
ENDIF
ENDIF
//update legs for dress
IF ePedModel = MP_F_FREEMODE_01
AND (eType = COMP_TYPE_JBIB OR eType = COMP_TYPE_LEGS)
PED_COMP_NAME_ENUM eCurrentLegsItem, eCurrentJbibItem, eReturnLegsItem
IF (eType = COMP_TYPE_JBIB)
eCurrentLegsItem = GET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS)
eCurrentJbibItem = eItem
ELSE
eCurrentLegsItem = eItem
eCurrentJbibItem = GET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_JBIB)
ENDIF
// Wearing a dress?
IF IS_ITEM_A_DRESS(ePedModel, COMP_TYPE_JBIB, eCurrentJbibItem)
// Make sure we have the dress legs.
IF NOT IS_PED_COMP_DRESS_VERSION(ePedModel, COMP_TYPE_LEGS, eCurrentLegsItem)
IF GET_PED_COMP_ITEM_DRESS_VERSION(ePedModel, COMP_TYPE_LEGS, eCurrentLegsItem, eReturnLegsItem)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Updating legs to dress version")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS, eReturnLegsItem, FALSE, iPaletteOverride)
ENDIF
ENDIF
ELSE
// Make sure we don't have the dress legs.
IF IS_PED_COMP_DRESS_VERSION(ePedModel, COMP_TYPE_LEGS, eCurrentLegsItem)
IF GET_PED_COMP_ITEM_NON_DRESS_VERSION(ePedModel, COMP_TYPE_LEGS, eCurrentLegsItem, eReturnLegsItem)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Updating legs to non dress version")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS, eReturnLegsItem, FALSE, iPaletteOverride)
ENDIF
ENDIF
ENDIF
ENDIF
// Update alt items
IF (eType = COMP_TYPE_LEGS)
OR (eType = COMP_TYPE_FEET)
INT iFeetDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_FEET)
INT iFeetTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_FEET)
INT iDLCFeetHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_FEET), iFeetDraw, iFeetTex)
INT iLegsDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_LEG)
INT iLegsTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_LEG)
INT iDLCLegsHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_LEG), iLegsDraw, iLegsTex)
PED_COMP_NAME_ENUM eCurrentLegs = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_LEGS)
PED_COMP_NAME_ENUM eCurrentFeet = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(ped, COMP_TYPE_FEET)
INT iAltComps
INT iAltComp
INT iRetNameHash, iRetCompEnum, iRetType
// ALT FEET
IF DOES_DLC_ITEM_HAVE_ALT_VERSION(ePedModel, iDLCFeetHash)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCFeetHash, DLC_RESTRICTION_TAG_ALT_FEET, ENUM_TO_INT(SHOP_PED_COMPONENT)) != SHOULD_ALT_FEET_BE_USED_FOR_LEGS(ePedModel, eCurrentLegs, iDLCFeetHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Alt feet state is wrong")
iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iDLCFeetHash)
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iDLCFeetHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(PED_COMP_FEET)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
IF ePedModel = MP_M_FREEMODE_01
eCurrentFeet = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_FEET, 3)
iDLCFeetHash = iRetNameHash
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_FEET, eCurrentFeet, FALSE, iPaletteOverride)
ELIF ePedModel = MP_F_FREEMODE_01
eCurrentFeet = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_FEET, 4)
iDLCFeetHash = iRetNameHash
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_FEET, eCurrentFeet, FALSE, iPaletteOverride)
ENDIF
iAltComp = iAltComps+1//Bail
ENDIF
ENDIF
ENDREPEAT
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCLegsHash, DLC_RESTRICTION_TAG_ALT_LEGS, ENUM_TO_INT(SHOP_PED_COMPONENT)) != SHOULD_ALT_LEGS_BE_USED_FOR_FEET(ePedModel, eCurrentFeet, iDLCLegsHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Alt legs state is wrong")
iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iDLCLegsHash)
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iDLCLegsHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(PED_COMP_LEG)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
IF ePedModel = MP_M_FREEMODE_01
eCurrentLegs = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_LEGS, 3)
iDLCLegsHash = iRetNameHash
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS, eCurrentLegs, FALSE, iPaletteOverride)
ELIF ePedModel = MP_F_FREEMODE_01
eCurrentLegs = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_LEGS, 4)
iDLCLegsHash = iRetNameHash
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS, eCurrentLegs, FALSE, iPaletteOverride)
ENDIF
iAltComp = iAltComps+1//Bail
ENDIF
ENDIF
ENDREPEAT
ENDIF
ENDIF
// ALT LEGS
IF DOES_DLC_ITEM_HAVE_ALT_VERSION(ePedModel, iDLCLegsHash)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCLegsHash, DLC_RESTRICTION_TAG_ALT_LEGS, ENUM_TO_INT(SHOP_PED_COMPONENT)) != SHOULD_ALT_LEGS_BE_USED_FOR_FEET(ePedModel, eCurrentFeet, iDLCLegsHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Alt legs state is wrong")
iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iDLCLegsHash)
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iDLCLegsHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(PED_COMP_LEG)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
IF ePedModel = MP_M_FREEMODE_01
eCurrentLegs = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_LEGS, 3)
iDLCLegsHash = iRetNameHash
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS, eCurrentLegs, FALSE, iPaletteOverride)
ELIF ePedModel = MP_F_FREEMODE_01
eCurrentLegs = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_LEGS, 4)
iDLCLegsHash = iRetNameHash
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_LEGS, eCurrentLegs, FALSE, iPaletteOverride)
ENDIF
iAltComp = iAltComps+1//Bail
ENDIF
ENDIF
ENDREPEAT
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCFeetHash, DLC_RESTRICTION_TAG_ALT_FEET, ENUM_TO_INT(SHOP_PED_COMPONENT)) != SHOULD_ALT_FEET_BE_USED_FOR_LEGS(ePedModel, eCurrentLegs, iDLCFeetHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Alt feet state is wrong")
iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iDLCFeetHash)
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iDLCFeetHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(PED_COMP_FEET)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
IF ePedModel = MP_M_FREEMODE_01
eCurrentFeet = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_FEET, 3)
iDLCFeetHash = iRetNameHash
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_FEET, eCurrentFeet, FALSE, iPaletteOverride)
ELIF ePedModel = MP_F_FREEMODE_01
eCurrentFeet = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_FEET, 4)
iDLCFeetHash = iRetNameHash
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_FEET, eCurrentFeet, FALSE, iPaletteOverride)
ENDIF
iAltComp = iAltComps+1//Bail
ENDIF
ENDIF
ENDREPEAT
ENDIF
ENDIF
ENDIF
// Update jbib for hooded jacket.
IF (eType = COMP_TYPE_JBIB OR eType = COMP_TYPE_BERD)
UPDATE_PED_HOOD_STATE(ped)
INT iBerdDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_BERD)
INT iBerdTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_BERD)
INT iDLCBerdHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_BERD), iBerdDraw, iBerdTex)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerdHash, DLC_RESTRICTION_TAG_FORCE_PROP, ENUM_TO_INT(SHOP_PED_COMPONENT))
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, eType, eItem, COMP_TYPE_PROPS, ANCHOR_HEAD)
IF eRequisite != DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Setting head prop requisite, eType=", GET_PED_COMP_TYPE_STRING(COMP_TYPE_PROPS), ", anchor=,", GET_PROP_POSITION_STRING(ANCHOR_HEAD), ", eItem=", eRequisite)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_PROPS, eRequisite, FALSE)
ENDIF
eRequisite = GET_PED_COMPONENT_ITEM_REQUISITE_MP(ped, ePedModel, eType, eItem, COMP_TYPE_PROPS, ANCHOR_EYES)
IF eRequisite != DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Setting eye prop requisite, eType=", GET_PED_COMP_TYPE_STRING(COMP_TYPE_PROPS), ", anchor=,", GET_PROP_POSITION_STRING(ANCHOR_EYES), ", eItem=", eRequisite)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_PROPS, eRequisite, FALSE)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
// --------------------HAIR RESTORE CHECK-------------------------------------
#IF USE_TU_CHANGES
IF eType != COMP_TYPE_HAIR
#ENDIF
IF IS_SAFE_TO_RESTORE_SAVED_HAIR_MP(ped, eReturnItem)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Restore hair")
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_HAIR, eReturnItem, FALSE)
ENDIF
#IF USE_TU_CHANGES
ENDIF
#ENDIF
// --------------------FORCED TORSO CHECK-------------------------------------
IF (eForcedTorso != DUMMY_PED_COMP)
AND NOT bSkipTorsoUpdate
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Forcing torso to match JBIB and SPECIAL combo, eForcedTorso=", eForcedTorso)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_TORSO, eForcedTorso, FALSE, iPaletteOverride)
ENDIF
// Restore body warmer?
IF eRestoreSpecial != DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Forcing utility vest, eRestoreSpecial=", eRestoreSpecial)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, eRestoreSpecial, FALSE, iPaletteOverride)
ENDIF
// --------------------FORCED PROPS CHECK-------------------------------------
IF eForcedBerd != DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Forcing berd item, eForcedBerd=", eForcedBerd)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_BERD, eForcedBerd, FALSE)
ENDIF
// Restore gloves?
IF iRestoreGloveType != -1
INT iDLCGloveHash = GET_DLC_GLOVE_HASH_FOR_UPPR(ePedModel, ENUM_TO_INT(GET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_TORSO)), iRestoreGloveType)
IF iDLCGloveHash != -1
IF ePedModel = MP_M_FREEMODE_01
eRestoreTorso = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iDLCGloveHash, COMP_TYPE_TORSO, 3)
ELIF ePedModel = MP_F_FREEMODE_01
eRestoreTorso = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iDLCGloveHash, COMP_TYPE_TORSO, 4)
ENDIF
IF eRestoreTorso != DUMMY_PED_COMP
// Offset to get the correct texture.
eRestoreTorso = INT_TO_ENUM(PED_COMP_NAME_ENUM, ENUM_TO_INT(eRestoreTorso)+iRestoreGloveTexture)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_PED_COMP_ITEM_CURRENT_MP : Forcing gloves back on, eRestoreTorso=", eRestoreTorso, ", iRestoreGloveType=", iRestoreGloveType)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_TORSO, eRestoreTorso, FALSE, iPaletteOverride)
ENDIF
ENDIF
ENDIF
// item is now current
g_iPedComponentNest--
RETURN TRUE
ENDFUNC
/// PURPOSE: Sets the current component item for the ped
FUNC BOOL SET_PED_COMP_ITEM_CURRENT_ALL(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bMustBeAvailable = TRUE, INT iPaletteOverride = -1)
IF NETWORK_IS_GAME_IN_PROGRESS()
RETURN SET_PED_COMP_ITEM_CURRENT_MP(ped, eType, eItem, bMustBeAvailable, iPaletteOverride)
ELSE
RETURN SET_PED_COMP_ITEM_CURRENT_SP(ped, eType, eItem, bMustBeAvailable, iPaletteOverride)
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Removes a ped component item if it is removable
FUNC BOOL REMOVE_PED_COMP_ITEM_MP(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
IF IS_PED_INJURED(ped)
OR eItem = DUMMY_PED_COMP
RETURN FALSE
ENDIF
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
// First check that the ped model can have the component item
IF NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
CPRINTLN(DEBUG_PED_COMP, "[REMOVE_PED_COMP_ITEM_MP] Component item[", ENUM_TO_INT(eItem), "] doesn't belong to ped[", g_sTempCompData[1].iPedID, "]")
RETURN FALSE
ENDIF
// Is item current?
IF NOT IS_PED_COMP_ITEM_CURRENT_MP(ped, eType, eItem)
CPRINTLN(DEBUG_PED_COMP, "[REMOVE_PED_COMP_ITEM_MP] Component item[", ENUM_TO_INT(eItem), "] not current")
RETURN FALSE
ENDIF
// ---------OUTFITS -----------------------------
IF eType = COMP_TYPE_OUTFIT
INT i
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
// Remove all the flagged component items
FOR i = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sOutfitData.eItems[i] <> DUMMY_PED_COMP
REMOVE_PED_COMP_ITEM_MP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i])
ENDIF
ENDFOR
// ----------PROPGROUPS---------------------
ELIF eType = COMP_TYPE_PROPGROUP
INT i
BOOL bSuccess
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, eItem)
// Remove all the flagged props
FOR i = 0 TO NUMBER_OF_PED_PROP_TYPES-1
IF NOT REMOVE_PED_COMP_ITEM_MP(ped, COMP_TYPE_PROPS, sPropGroupData.eItems[i])
bSuccess = FALSE
ENDIF
ENDFOR
RETURN bSuccess
// ------------PROPS--------------------
ELIF eType = COMP_TYPE_PROPS
CLEAR_PED_PROP(ped, g_sTempCompData[1].ePropPos)
// ----------NORMAL ITEMS ------------------
ELSE
// For now just set the item to the default
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, OUTFIT_DEFAULT)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, sOutfitData.eItems[eType])
// Make sure the actual drawable and texture variations are valid
// incase the script/code data are out of sync.
IF GET_NUMBER_OF_PED_DRAWABLE_VARIATIONS(ped,GET_PED_COMPONENT_FROM_TYPE(eType)) > 0
AND GET_NUMBER_OF_PED_TEXTURE_VARIATIONS(ped,GET_PED_COMPONENT_FROM_TYPE(eType), g_sTempCompData[1].iDrawable) > 0
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
ENDIF
ENDIF
// --------------------HAIR RESTORE CHECK-------------------------------------
PED_COMP_NAME_ENUM eReturnItem
IF IS_SAFE_TO_RESTORE_SAVED_HAIR_MP(ped, eReturnItem)
CPRINTLN(DEBUG_PED_COMP, "REMOVE_PED_COMP_ITEM_MP - IS_SAFE_TO_RESTORE_SAVED_HAIR_MP returned true returned hair is ", eReturnItem)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_HAIR, eReturnItem, FALSE)
ENDIF
RETURN TRUE
ENDFUNC
/// PURPOSE: Removes a ped component item if it is removable
FUNC BOOL REMOVE_PED_COMP_ITEM_SP(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
IF IS_PED_INJURED(ped)
OR eItem = DUMMY_PED_COMP
RETURN FALSE
ENDIF
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
// First check that the ped model can have the component item
IF NOT (IS_BIT_SET(g_sTempCompData[1].iProperties, PED_COMPONENT_CAN_HAVE_BIT))
CPRINTLN(DEBUG_PED_COMP, "[REMOVE_PED_COMP_ITEM_SP] Component item[", ENUM_TO_INT(eItem), "] doesn't belong to ped[", g_sTempCompData[1].iPedID, "]")
RETURN FALSE
ENDIF
// Is item current?
IF NOT IS_PED_COMP_ITEM_CURRENT_SP(ped, eType, eItem)
CPRINTLN(DEBUG_PED_COMP, "[REMOVE_PED_COMP_ITEM_SP] Component item[", ENUM_TO_INT(eItem), "] not current")
RETURN FALSE
ENDIF
// ---------OUTFITS -----------------------------
IF eType = COMP_TYPE_OUTFIT
INT i
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eItem)
// Remove all the flagged component items
FOR i = 0 TO NUMBER_OF_PED_COMP_TYPES-1
IF sOutfitData.eItems[i] <> DUMMY_PED_COMP
REMOVE_PED_COMP_ITEM_SP(ped, INT_TO_ENUM(PED_COMP_TYPE_ENUM, i), sOutfitData.eItems[i])
ENDIF
ENDFOR
// ----------PROPGROUPS---------------------
ELIF eType = COMP_TYPE_PROPGROUP
INT i
BOOL bSuccess
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, eItem)
// Remove all the flagged props
FOR i = 0 TO NUMBER_OF_PED_PROP_TYPES-1
IF NOT REMOVE_PED_COMP_ITEM_SP(ped, COMP_TYPE_PROPS, sPropGroupData.eItems[i])
bSuccess = FALSE
ENDIF
ENDFOR
RETURN bSuccess
// ------------PROPS--------------------
ELIF eType = COMP_TYPE_PROPS
CLEAR_PED_PROP(ped, g_sTempCompData[1].ePropPos)
// ----------NORMAL ITEMS ------------------
ELSE
// For now just set the item to the default
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, OUTFIT_DEFAULT)
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, sOutfitData.eItems[eType])
// Make sure the actual drawable and texture variations are valid
// incase the script/code data are out of sync.
IF GET_NUMBER_OF_PED_DRAWABLE_VARIATIONS(ped,GET_PED_COMPONENT_FROM_TYPE(eType)) > 0
AND GET_NUMBER_OF_PED_TEXTURE_VARIATIONS(ped,GET_PED_COMPONENT_FROM_TYPE(eType), g_sTempCompData[1].iDrawable) > 0
//PRINTLN("******Setting ", g_sTempCompData[1].iDrawable, ",", g_sTempCompData[1].iTexture, " for ped_component ", GET_PED_COMPONENT_FROM_TYPE(eType))
SET_PED_COMPONENT_VARIATION(ped, GET_PED_COMPONENT_FROM_TYPE(eType), g_sTempCompData[1].iDrawable, g_sTempCompData[1].iTexture)
ENDIF
ENDIF
// --------------------HAIR / BEARD / MASKS RESTORE CHECK-------------------------------------
PED_COMP_NAME_ENUM eReturnItem
IF IS_SAFE_TO_RESTORE_SAVED_HAIR(ped, ePedModel, eReturnItem)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_HAIR, eReturnItem, FALSE)
ENDIF
IF IS_SAFE_TO_RESTORE_SAVED_BEARD(ped, ePedModel, eReturnItem)
SET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_BERD, eReturnItem, FALSE)
ENDIF
RETURN TRUE
ENDFUNC
/// PURPOSE: Removes a ped component item if it is removable
FUNC BOOL REMOVE_PED_COMP_ITEM_ALL(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
IF NETWORK_IS_GAME_IN_PROGRESS()
RETURN REMOVE_PED_COMP_ITEM_MP(ped, eType, eItem)
ELSE
RETURN REMOVE_PED_COMP_ITEM_SP(ped, eType, eItem)
ENDIF
RETURN FALSE
ENDFUNC
ENUM HOODED_JACKET_STATE_ENUM
JACKET_HOOD_DOWN,
JACKET_HOOD_UP,
JACKET_HOOD_TUCKED
ENDENUM
PROC SET_HOODED_JACKET_STATE(PED_INDEX ped, HOODED_JACKET_STATE_ENUM eHoodState)
INT iJbibDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB)
INT iJbibTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB)
INT iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_JBIB), iJbibDraw, iJbibTex)
INT iDeclDraw = GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_DECL)
INT iDeclTex = GET_PED_TEXTURE_VARIATION(ped, PED_COMP_DECL)
INT iDLCDeclHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_DECL), iDeclDraw, iDeclTex)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOODED_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Make sure we have correct hood version
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOOD_UP, ENUM_TO_INT(SHOP_PED_COMPONENT)) != (eHoodState = JACKET_HOOD_UP)
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HOOD_TUCKED, ENUM_TO_INT(SHOP_PED_COMPONENT)) != (eHoodState = JACKET_HOOD_TUCKED)
PRINTLN("[Script_PIM] SET HOOD STATE = change!")
INT iAltItem
IF GET_ALT_HOODED_JACKET(iDLCJbibHash, (eHoodState = JACKET_HOOD_UP), (eHoodState = JACKET_HOOD_TUCKED), iAltItem)
PRINTLN("[Script_PIM] SET HOOD STATE = found item!")
scrShopPedComponent componentItem
GET_SHOP_PED_COMPONENT(iAltItem, componentItem)
//SET_PED_COMPONENT_VARIATION(ped, PED_COMP_JBIB, componentItem.m_drawableIndex, componentItem.m_textureIndex, GET_PED_PALETTE_VARIATION(ped, PED_COMP_JBIB))
// Get rid of fake hat so that it doesn't force the hood back up.
IF (eHoodState != JACKET_HOOD_UP)
INT iDLCPropHeadHash = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(ped), ENUM_TO_INT(ANCHOR_HEAD), GET_PED_PROP_INDEX(ped, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(ped, ANCHOR_HEAD))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCPropHeadHash, DLC_RESTRICTION_TAG_FAKE_HAT, ENUM_TO_INT(SHOP_PED_PROP))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_HOODED_JACKET_STATE : Removing fake hat")
CLEAR_PED_PROP(ped, ANCHOR_HEAD)
ENDIF
ENDIF
// Go through ped comp functions to ensure correct rules are applied.
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_JBIB, GET_PED_COMP_ITEM_FROM_VARIATIONS(ped, componentItem.m_drawableIndex, componentItem.m_textureIndex, COMP_TYPE_JBIB), FALSE)
// Restore forced DECL
IF GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_DECL) = 0
AND DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iDLCDeclHash, PED_COMP_JBIB)
IF DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iDLCDeclHash, PED_COMP_JBIB, componentItem.m_nameHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_HOODED_JACKET_STATE : Restoring existing DECL")
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, iDeclDraw, iDeclTex)
ELSE
// Check if this DECL has an ALT decl that forces on the JBIB we just applied.
INT iRetNameHash
IF GET_ALT_DLC_PED_COMP_OF_TYPE(iDLCDeclHash, PED_COMP_DECL, iRetNameHash)
IF DOES_DLC_ITEM_FORCE_PED_COMP_TYPE(iRetNameHash, PED_COMP_JBIB, componentItem.m_nameHash)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "SET_HOODED_JACKET_STATE : Setting ALT DECL for new JBIB")
scrShopPedComponent componentItemDecl
GET_SHOP_PED_COMPONENT(iRetNameHash, componentItemDecl)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItemDecl.m_drawableIndex, componentItemDecl.m_textureIndex)
ENDIF
ENDIF
ENDIF
ENDIF
// Update decl on sleeveless hoodie.
IF GET_ENTITY_MODEL(ped) = MP_M_FREEMODE_01
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCDeclHash, DLC_RESTRICTION_TAG_CREW_LOGO, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_16, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_IE_M_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_M_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_IE_M_DECL_2_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_M_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_GORKA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Re-apply
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_X17_M_DECL_10_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#IF FEATURE_FIXER
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_M_DECL_0_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_M_DECL_0_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_M_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_M_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#ENDIF
ENDIF
ENDIF
ELSE
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCDeclHash, DLC_RESTRICTION_TAG_CREW_LOGO, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_16, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_IE_F_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_F_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_IE_DRAW_19, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_IE_F_DECL_2_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_IE_F_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_GORKA_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Re-apply
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_X17_F_DECL_10_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#IF FEATURE_FIXER
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_F_DECL_1_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_F_DECL_1_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltItem, DLC_RESTRICTION_TAG_FX_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND iDLCDeclHash != HASH("DLC_MP_FIXER_F_DECL_2_0")
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_FIXER_F_DECL_2_0"), componentItem)
SET_PED_COMPONENT_VARIATION(ped, PED_COMP_DECL, componentItem.m_drawableIndex, componentItem.m_textureIndex)
#ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
PROC SET_JACKET_STATE(PED_INDEX ped, BOOL bOpen)
UNUSED_PARAMETER(ped)
UNUSED_PARAMETER(bOpen)
INT iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT( NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_JBIB), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_JBIB))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND bOpen != DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_OPEN_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
INT iAltComps
INT iAltComp
INT iRetCompEnum, iRetType, iRetNameHash
scrShopPedComponent componentItem
iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iDLCJbibHash)
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iDLCJbibHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(PED_COMP_JBIB)
AND iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iRetNameHash, DLC_RESTRICTION_TAG_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND bOpen = DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iRetNameHash, DLC_RESTRICTION_TAG_OPEN_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
GET_SHOP_PED_COMPONENT(iRetNameHash, componentItem)
// Go through ped comp functions to ensure correct rules are applied.
PED_COMP_NAME_ENUM eJBIBJacket = GET_PED_COMP_ITEM_FROM_VARIATIONS(ped, componentItem.m_drawableIndex, componentItem.m_textureIndex, COMP_TYPE_JBIB)
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_JBIB, eJBIBJacket, FALSE)
// Restore last special
IF bOpen
PED_COMP_NAME_ENUM eLastStoredUnderJacketItem = GET_LAST_UNDER_JACKET_ITEM(ped, eJBIBJacket)
IF eLastStoredUnderJacketItem != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_MP(ped, COMP_TYPE_SPECIAL, eLastStoredUnderJacketItem, FALSE)
IF g_iLastStoredDecalHash != 0
INT iDLCSpecialHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(ped), ENUM_TO_INT(PED_COMP_SPECIAL), GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_SPECIAL), GET_PED_TEXTURE_VARIATION(ped, PED_COMP_SPECIAL))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCSpecialHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
TATTOO_NAME_ENUM eShirtDecal = GET_TATTOO_ENUM_FROM_DLC_HASH(g_iLastStoredDecalHash, GET_TATTOO_FACTION_FOR_PED(ped))
IF eShirtDecal != INVALID_TATTOO
PRINTLN("SET_JACKET_STATE - Setting t-shirt decal, enum=", eShirtDecal)
SET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH, g_iLastStoredDecalHash)
SET_MP_TATTOO_CURRENT(eShirtDecal, TRUE)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
EXIT
ENDIF
ENDREPEAT
ENDIF
ENDPROC
/// PURPOSE:
/// Returns the current style of a specific component currently assigned to a ped.
/// This is to allow other characters to comment appropriately about how a ped looks.
/// This is singleplayer only!
/// Currently only used for hair + torso. Will need updating to work for props!
/// PARAMS:
/// ped - The ped whose component is to be queried.
/// eType - The type of componenet to be queried.
/// RETURNS: An enum that represents the look of the component.
FUNC PED_COMP_STYLE_ENUM GET_PLAYABLE_PED_COMPONENT_STYLE(PED_INDEX ped, PED_COMP_TYPE_ENUM eType)
MODEL_NAMES pedModel = GET_ENTITY_MODEL(ped)
IF NOT IS_MODEL_PLAYABLE_CHARACTER(pedModel)
SCRIPT_ASSERT("GET_PLAYABLE_PED_COMPONENT_STYLE: This command can not be called on a non playable character ped. Returning default style.")
RETURN COMP_STYLE_SENSIBLE
ENDIF
PED_COMP_NAME_ENUM eItem = GET_PED_COMP_ITEM_CURRENT_SP(ped, eType)
IF eItem = DUMMY_PED_COMP
RETURN COMP_STYLE_EMPTY
ENDIF
g_sTempCompData[1] = GET_PED_COMP_DATA_FOR_ITEM_SP(GET_ENTITY_MODEL(ped), eType, eItem)
RETURN g_sTempCompData[1].eStyle
ENDFUNC
/// PURPOSE:
/// Called when we are forced to change an item in the validation checks
/// PARAMS:
/// eCompType - the comp type of the item we were forced to change
/// iPropPos- the prop position of the item we were forced to change
/// iItemAltered - the int that tracks which item we have changed
/// iPropAltered - the int that tracks which prop we have changed
/// eReturnItem - the name of the new item we have been forced to equip
/// eNewItemToEquip - the item we want to overwrite eReturnItem with
PROC VALIDATION_CHECKS_ITEM_ALTERED(PED_COMP_TYPE_ENUM eCompType, INT iPropPos, INT &iItemAltered, INT &iPropAltered, PED_COMP_NAME_ENUM &eReturnItem, PED_COMP_NAME_ENUM eNewItemToEquip)
// only change the type to check next, if we haven't already changed it
// (in case on this pass we change multiple items)
IF iItemAltered = -1
iItemAltered = ENUM_TO_INT(eCompType)
eReturnItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, eNewItemToEquip)
IF eCompType = COMP_TYPE_PROPS
iPropAltered = iPropPos
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Forces the rest of the ped's outfit to be valid for wearing with the item passed in
/// PARAMS:
/// mPed - the ped whose outfit we are editing
/// eCurrentCompType - the comp type we are checking for compatibility with the new item
/// iCurrentPropPos - the prop pos of the item we are checking for compatibility
/// eCurrentItem - the currently equipped item of this type
/// eNewType - the type of the new item we are equipping
/// eNewItem - the new item we are equipping
/// iItemAltered - returns the type of the first item that was forced to change for outfit to be valid
/// iPropAltered - returns the prop pos of the first item that was forced to change for outfit to be valid
/// eReturnItem - returns the name of the first item that was forced to change for outfit to be valid
/// bMustBeAcquired - if True we only use acquired items in the checks
PROC DO_VALIDATION_CHECKS_FOR_ITEM_MP(PED_INDEX mPed, PED_COMP_TYPE_ENUM eCurrentCompType, INT iCurrentPropPos, PED_COMP_NAME_ENUM eCurrentItem, PED_COMP_TYPE_ENUM eNewType, PED_COMP_NAME_ENUM eNewItem, INT &iItemAltered, INT &iPropAltered, PED_COMP_NAME_ENUM &eReturnItem, BOOL bMustBeAcquired)
//
// CALLS TO THIS FUNCTION MUST STEM FROM -----FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP()-----
//
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed)
PED_COMP_ITEM_DATA_STRUCT sTempData
IF NOT CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eCurrentItem, eNewType, eNewItem, mPed)
// Set suitable alternative
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Items not compatible, eNewType=", GET_PED_COMP_TYPE_STRING(eNewType), ", eNewItem=", eNewItem, ", eCurrentCompType=", GET_PED_COMP_TYPE_STRING(eCurrentCompType), " eCurrentItem=", eCurrentItem)
BOOL bItemFound = FALSE
INT iItem = 0
PED_COMP_NAME_ENUM eDummyItem
// If this is the chain item, see if we can use the alt variation
#IF USE_TU_CHANGES
INT iCurrentPed
IF ePedModel = MP_M_FREEMODE_01
iCurrentPed = 3
ELIF ePedModel = MP_F_FREEMODE_01
iCurrentPed = 4
ENDIF
IF (iCurrentPed = 3 AND eCurrentItem >= TEETH_FMM_DLC AND eCurrentCompType = COMP_TYPE_TEETH)
OR (iCurrentPed = 4 AND eCurrentItem >= TEETH_FMF_DLC AND eCurrentCompType = COMP_TYPE_TEETH)
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentItem, COMP_TYPE_TEETH, iCurrentPed)
IF iItemNameHash != -1
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_CHAIN, ENUM_TO_INT(SHOP_PED_COMPONENT))
INT iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iItemNameHash)
INT iAltComp
INT iRetNameHash, iRetCompEnum, iRetType
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iItemNameHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF iRetType = ENUM_TO_INT(PED_COMP_TEETH)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_TEETH, iCurrentPed)
// Forced on-disk item
ELSE
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetCompEnum)
ENDIF
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem, mPed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found alternative chain item, ", eDummyItem)
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
iAltComp = iAltComps+1// Bail
ENDIF
ENDREPEAT
ENDIF
ENDIF
#ENDIF
// if this is a long sleeve shirt that can only be worn with the waistcoat, switch to short sleeve.
#IF USE_TU_CHANGES
IF ePedModel = MP_M_FREEMODE_01
AND eCurrentCompType = COMP_TYPE_SPECIAL
AND eCurrentItem >= SPECIAL_FMM_DLC
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentItem, COMP_TYPE_SPECIAL, 3), DLC_RESTRICTION_TAG_LONG_SLEEVE, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = GET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_JBIB)
INT iDLCJbibCheck = -1
IF eDummyItem >= JBIB_FMM_DLC
iDLCJbibCheck = GET_DLC_DRAW_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eDummyItem, COMP_TYPE_JBIB, 3))
ENDIF
IF (eDummyItem >= JBIB_FMM_11_0 AND eDummyItem <= JBIB_FMM_11_15)
OR (iDLCJbibCheck = 11)
eDummyItem = SPECIAL_FMM_6_0
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem, mPed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Player is wearing a waistcoat so forcing short sleeved shirt, ", eDummyItem)
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
ENDIF
ENDIF
#ENDIF
#IF USE_TU_CHANGES
IF ePedModel = MP_M_FREEMODE_01
AND eCurrentCompType = COMP_TYPE_SPECIAL
AND eNewType = COMP_TYPE_JBIB
AND eNewItem >= JBIB_FMM_DLC
INT iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, 3)
// if this is a tailcoat switch to a tank top.
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_TAILS_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = SPECIAL_FMM_5_0
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem, mPed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found tank top for tailcoat, ", eDummyItem)
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
// if this is a scruffy jacket switch to a shirt.
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_SCRUFFY_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = SPECIAL_FMM_13_0 // White tucked shirt
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem, mPed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found tucked shirt for scruffy jacket, ", eDummyItem)
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
AND eCurrentCompType = COMP_TYPE_SPECIAL
AND eNewType = COMP_TYPE_JBIB
AND eNewItem >= JBIB_FMF_DLC
INT iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, 4)
// if this is one of the new jackets, switch to the first business shirt.
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_5, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_11, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_HEIST_DRAW_12, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_8, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_9, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_10, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_11, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_12, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_13, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_APART_DRAW_25, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_HEIST_F_SPECIAL_7_0"), COMP_TYPE_SPECIAL, 4)
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem, mPed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found business shirt for heist jacket, ", eDummyItem)
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
ENDIF
ENDIF
#ENDIF
// if this is a utility vest force the accs for the jbib
#IF USE_TU_CHANGES
IF eCurrentCompType = COMP_TYPE_SPECIAL
AND eCurrentItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_SPECIAL)
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentItem, eCurrentCompType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_OVER_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
PED_COMP_NAME_ENUM eCurrentJBIB = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_JBIB)
PED_COMP_NAME_ENUM eCurrentLegs = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_LEGS)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentJBIB, COMP_TYPE_JBIB, iCurrentPed), DLC_RESTRICTION_TAG_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
// If the jbib is a vest, skip...
ELSE
// Try and get the accs for this jbib.
eDummyItem = GET_PED_COMPONENT_ITEM_REQUISITE_MP(mPed, ePedModel, COMP_TYPE_JBIB, eCurrentJBIB, COMP_TYPE_SPECIAL)
IF eDummyItem != DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found special to replace heist gear, ", eDummyItem)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
// We will also need to ensure the correct torso is used.
// We may need to add some glove checks here at some point.
eDummyItem = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, eDummyItem, eCurrentJBIB, eCurrentLegs)
IF eDummyItem = DUMMY_PED_COMP
eDummyItem = GET_PED_COMPONENT_ITEM_REQUISITE_MP(mPed, ePedModel, COMP_TYPE_JBIB, eCurrentJBIB, COMP_TYPE_TORSO)
ENDIF
IF eDummyItem != DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Forcing torso for JBIB and SPECIAL combo, ", eDummyItem)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_TORSO, eDummyItem, FALSE)
ENDIF
// Otherwise just re-apply the jbib
ELSE
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_JBIB, eCurrentJBIB, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(COMP_TYPE_JBIB, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eCurrentJBIB)
ENDIF
ENDIF
ENDIF
ENDIF
#ENDIF
// if we are equipping a heist accs force a valid jbib
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_SPECIAL
AND eCurrentCompType = COMP_TYPE_JBIB
AND eNewItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_SPECIAL)
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_HEIST_GEAR, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND (DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_HEIST_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT)) OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_HEIST_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT)))
// Force bare chest
IF ePedModel = MP_M_FREEMODE_01
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : JBIB not compatible with heist gear, set bare chest")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_JBIB, JBIB_FMM_15_0, FALSE)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, eNewType, eNewItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, JBIB_FMM_15_0)
// Force bikini
ELIF ePedModel = MP_F_FREEMODE_01
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : JBIB not compatible with heist gear, set bikini")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_JBIB, JBIB_FMF_15_0, FALSE)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, eNewType, eNewItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, JBIB_FMF_15_0)
ENDIF
ENDIF
ENDIF
#ENDIF
// if we are equipping fitted tux pants force valid shoes
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_LEGS
AND eCurrentCompType = COMP_TYPE_FEET
AND ePedModel = MP_M_FREEMODE_01
AND eNewItem >= LEGS_FMM_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_TUX_PANTS, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_SKINNY, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : FEET not compatible with tux pants, set shoes")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_FEET, FEET_FMF_10_0, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, FEET_FMF_10_0)
ENDIF
ENDIF
#ENDIF
// if we are equipping a biker vest force valid accs
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_JBIB
AND eCurrentCompType = COMP_TYPE_SPECIAL
IF ePedModel = MP_M_FREEMODE_01
AND eNewItem >= JBIB_FMM_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_BIKER_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : SPECIAL not compatible with biker vest, set bare chest")
eDummyItem = SPECIAL_FMM_15_0
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
AND eNewItem >= JBIB_FMF_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_LUXE2_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_BIKER_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : SPECIAL not compatible with , set bikini top")
eDummyItem = SPECIAL_FMF_15_0
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
ENDIF
#ENDIF
// if we are equipping biker boots force valid legs
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_FEET
AND eCurrentCompType = COMP_TYPE_LEGS
AND ePedModel = MP_M_FREEMODE_01
AND eNewItem >= FEET_FMM_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_BIKER_DRAW_2, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : LEGS not compatible with biker boots, set shorts")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_LEGS, LEGS_FMM_6_0, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, LEGS_FMM_6_0)
ENDIF
ENDIF
#ENDIF
// if we are equipping a tux jacket force a valid accs
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_JBIB
AND eCurrentCompType = COMP_TYPE_SPECIAL
AND ePedModel = MP_M_FREEMODE_01
AND eNewItem >= JBIB_FMM_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_TUX_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_APART_DRAW_21, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_APART_DRAW_24, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = DUMMY_PED_COMP
// if this is a tux item, see if we can grab the alt variant.
INT iSpecialDLCHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentItem, eCurrentCompType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialDLCHash, DLC_RESTRICTION_TAG_TUX_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
// alt_vest used for closed_jacket
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_CLOSED_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT)) != DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialDLCHash, DLC_RESTRICTION_TAG_ALT_VEST, ENUM_TO_INT(SHOP_PED_COMPONENT))
INT iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iSpecialDLCHash)
INT iAltComp
INT iRetNameHash, iRetCompEnum, iRetType
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iSpecialDLCHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF (iRetType = ENUM_TO_INT(PED_COMP_SPECIAL))
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_SPECIAL, 3)
// Forced on-disk item
ELSE
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetCompEnum)
ENDIF
iAltComp = iAltComps+1// Bail
ENDIF
ENDREPEAT
ENDIF
ENDIF
IF eDummyItem = DUMMY_PED_COMP
// shouldn't need this, added for safety
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : SPECIAL not compatible with tux jacket, set valid accs")
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_VWD_M_SPECIAL_6_2"), COMP_TYPE_SPECIAL, 3)
ENDIF
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
#ENDIF
// if we are equipping a smoking jacket force a valid accs
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_JBIB
AND eCurrentCompType = COMP_TYPE_SPECIAL
AND ePedModel = MP_F_FREEMODE_01
AND eNewItem >= JBIB_FMF_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_SMOKING_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : SPECIAL not compatible with smoking jacket, set bikini")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, SPECIAL_FMF_15_0, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, SPECIAL_FMF_15_0)
ENDIF
ENDIF
#ENDIF
// if we are equipping a open check shirt force a valid accs
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_JBIB
AND eCurrentCompType = COMP_TYPE_SPECIAL
IF ePedModel = MP_M_FREEMODE_01
AND eNewItem >= JBIB_FMM_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_LOW2_OPEN_CHECK, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : SPECIAL not compatible with open check shirt, set tank top")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, SPECIAL_FMM_5_0, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, SPECIAL_FMM_5_0)
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
AND eNewItem >= JBIB_FMF_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_LOW2_OPEN_CHECK, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : SPECIAL not compatible with open check shirt, set grey tank")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, SPECIAL_FMF_4_14, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, SPECIAL_FMF_4_14)
ENDIF
ENDIF
ENDIF
#ENDIF
// if we are equipping a open short sleeve shirt force a valid accs
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_JBIB
AND eCurrentCompType = COMP_TYPE_SPECIAL
IF ePedModel = MP_M_FREEMODE_01
AND eNewItem >= JBIB_FMM_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_OPEN_SHORT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : SPECIAL not compatible with open short shirt, set bare chest")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, SPECIAL_FMM_15_0, FALSE)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_TORSO, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_H4_M_TORSO_0_0"), COMP_TYPE_TORSO, 3), FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, SPECIAL_FMM_15_0)
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
AND eNewItem >= JBIB_FMF_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_OPEN_SHORT, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : SPECIAL not compatible with open short shirt, set bikini")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, SPECIAL_FMF_15_0, FALSE)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_TORSO, GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_H4_F_TORSO_0_0"), COMP_TYPE_TORSO, 4), FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, SPECIAL_FMF_15_0)
ENDIF
ENDIF
ENDIF
#ENDIF
// if we are equipping high waist trousers force a valid jbib / accs
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_LEGS
AND (ePedModel = MP_F_FREEMODE_01 AND eNewItem >= LEGS_FMF_DLC)
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_HIGH_WAIST, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF eCurrentCompType = COMP_TYPE_JBIB
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : JBIB not compatible with high waist trousers, set default")
INT iFrillShirt = HASH("DLC_MP_LOW2_F_JBIB_7_0")
// Check if we own any
IF IS_BIT_SET_SHOP_PED_APPAREL_SCRIPT(HASH("DLC_MP_LOW2_F_JBIB_7_0"), PED_COMPONENT_ACQUIRED_SLOT)
iFrillShirt = HASH("DLC_MP_LOW2_F_JBIB_7_0")
ELIF IS_BIT_SET_SHOP_PED_APPAREL_SCRIPT(HASH("DLC_MP_LOW2_F_JBIB_7_1"), PED_COMPONENT_ACQUIRED_SLOT)
iFrillShirt = HASH("DLC_MP_LOW2_F_JBIB_7_1")
ELIF IS_BIT_SET_SHOP_PED_APPAREL_SCRIPT(HASH("DLC_MP_LOW2_F_JBIB_7_2"), PED_COMPONENT_ACQUIRED_SLOT)
iFrillShirt = HASH("DLC_MP_LOW2_F_JBIB_7_2")
ENDIF
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iFrillShirt, COMP_TYPE_JBIB, 4)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_JBIB, eDummyItem, FALSE)
// remove scarfs
IF IS_ITEM_A_SCARF(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_TEETH))
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_TEETH, TEETH_FMF_0_0, FALSE)
ENDIF
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
ENDIF
#ENDIF
// if we are equipping a frill/zoot shirt force valid legs
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_JBIB
AND eCurrentCompType = COMP_TYPE_LEGS
IF ((ePedModel = MP_F_FREEMODE_01 AND eNewItem >= JBIB_FMF_DLC))
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_LOW2_DRAW_7, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : LEGS not compatible with frill shirt, set default")
INT iHighWaistPants = HASH("DLC_MP_LOW2_F_LEGS_1_0")
// Check if we own any
IF IS_BIT_SET_SHOP_PED_APPAREL_SCRIPT(HASH("DLC_MP_LOW2_F_LEGS_1_0"), PED_COMPONENT_ACQUIRED_SLOT)
iHighWaistPants = HASH("DLC_MP_LOW2_F_LEGS_1_0")
ELIF IS_BIT_SET_SHOP_PED_APPAREL_SCRIPT(HASH("DLC_MP_LOW2_F_LEGS_1_1"), PED_COMPONENT_ACQUIRED_SLOT)
iHighWaistPants = HASH("DLC_MP_LOW2_F_LEGS_1_1")
ELIF IS_BIT_SET_SHOP_PED_APPAREL_SCRIPT(HASH("DLC_MP_LOW2_F_LEGS_1_2"), PED_COMPONENT_ACQUIRED_SLOT)
iHighWaistPants = HASH("DLC_MP_LOW2_F_LEGS_1_2")
ENDIF
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iHighWaistPants, COMP_TYPE_LEGS, 4)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_LEGS, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
ENDIF
#ENDIF
// if we are equipping a loose tie, see if we can find the open collar variant.
#IF USE_TU_CHANGES
IF eNewType = COMP_TYPE_TEETH // The tie
AND eCurrentCompType = COMP_TYPE_SPECIAL // The shirt
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF (iCurrentPed = 3 AND eNewItem >= TEETH_FMM_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_LOOSE_TIE, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (iCurrentPed = 4 AND eNewItem >= TEETH_FMF_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_LOOSE_TIE, ENUM_TO_INT(SHOP_PED_COMPONENT)))
iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentItem, eCurrentCompType, iCurrentPed)
IF (eCurrentItem >= SPECIAL_FMM_10_0 AND eCurrentItem <= SPECIAL_FMM_10_15) // business shirt
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_DRAW_10, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = SPECIAL_FMM_11_0 + (eCurrentItem-SPECIAL_FMM_10_0)
// found a dummy item for this slot, see it if is suitable
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem, mPed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Forcing open collar shirt")
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
// ELIF add tux shirt? open collar check? DLC_MP_BUSI2_M_ACCS0_* and DLC_MP_BUSI2_M_ACCS1_*
// do stuff.
ENDIF
ELIF (iCurrentPed = 3 AND eNewItem >= TEETH_FMM_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_LOOSE_BOWTIE, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (iCurrentPed = 4 AND eNewItem >= TEETH_FMF_DLC AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_LOOSE_BOWTIE, ENUM_TO_INT(SHOP_PED_COMPONENT)))
iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentItem, eCurrentCompType, iCurrentPed)
eDummyItem = DUMMY_PED_COMP
IF iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_1_0")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_1_1")
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, ENUM_TO_INT(eCurrentItem)-2)
ELIF iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_0")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_1")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_2")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_3")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_4")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_5")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_6")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_7")
OR iItemNameHash = HASH("DLC_MP_IND_M_SPECIAL_3_8")
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, ENUM_TO_INT(eCurrentItem)-9)
ELIF (eCurrentItem >= SPECIAL_FMM_4_0 AND eCurrentItem <= SPECIAL_FMM_4_15)
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, ENUM_TO_INT(eCurrentItem)-16)
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_DRAW_4, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, ENUM_TO_INT(eCurrentItem)-13)
ELIF (eCurrentItem >= SPECIAL_FMM_6_0 AND eCurrentItem <= SPECIAL_FMM_6_15)
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_DRAW_6, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, ENUM_TO_INT(eCurrentItem)+16)
ELIF (eCurrentItem >= SPECIAL_FMM_10_0 AND eCurrentItem <= SPECIAL_FMM_10_15)
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_DRAW_10, ENUM_TO_INT(SHOP_PED_COMPONENT))
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, ENUM_TO_INT(eCurrentItem)+16)
ENDIF
IF eDummyItem != DUMMY_PED_COMP
// found a dummy item for this slot, see it if is suitable
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem, mPed)
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Forcing closed collar shirt")
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
// ELIF add tux shirt? open collar check? DLC_MP_BUSI2_M_ACCS0_* and DLC_MP_BUSI2_M_ACCS1_*
// do stuff.
ENDIF
ENDIF
ENDIF
#ENDIF
// If this is a tailcoat jacket force a valid set of trousers.
#IF USE_TU_CHANGES
IF ePedModel = MP_M_FREEMODE_01
AND eCurrentCompType = COMP_TYPE_LEGS
AND eNewType = COMP_TYPE_JBIB
AND eNewItem >= JBIB_FMM_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_TAILS_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Tailcoat not compatible with trousers, set default jeans")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_LEGS, LEGS_FMM_0_0, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, LEGS_FMM_0_0)
ENDIF
ENDIF
#ENDIF
// If this is utility pants force a valid top
#IF USE_TU_CHANGES
IF ePedModel = MP_F_FREEMODE_01
AND eCurrentCompType = COMP_TYPE_SPECIAL
AND eNewType = COMP_TYPE_LEGS
AND eNewItem >= LEGS_FMF_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_APART_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_GUN_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_GUN_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Utility pants not compatible with special, set grey tank accs")
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_SPECIAL, SPECIAL_FMF_4_14, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, SPECIAL_FMF_4_14)
ENDIF
ENDIF
#ENDIF
// Force on dress legs if the current legs do not match this dress.
#IF USE_TU_CHANGES
IF ePedModel = MP_F_FREEMODE_01
AND eNewType = COMP_TYPE_JBIB
AND (eCurrentCompType = COMP_TYPE_LEGS OR eCurrentCompType = COMP_TYPE_FEET)
AND eNewItem >= JBIB_FMF_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, eNewType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_MINI_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Force dress legs")
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_VAL_F_LEGS2_0"), COMP_TYPE_LEGS, 4)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_LEGS, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
IF ePedModel = MP_F_FREEMODE_01
AND eNewType = COMP_TYPE_FEET
AND (eCurrentCompType = COMP_TYPE_LEGS)
AND eCurrentItem >= LEGS_FMF_DLC
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eCurrentItem, eCurrentCompType, iCurrentPed)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemNameHash, DLC_RESTRICTION_TAG_STOCKINGS, ENUM_TO_INT(SHOP_PED_COMPONENT))
// current jbib is a dress
eDummyItem = GET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_JBIB)
INT iDLCJbibHash = -1
IF eDummyItem >= JBIB_FMF_DLC
iDLCJbibHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eDummyItem, COMP_TYPE_JBIB, 4)
ENDIF
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_MINI_DRESS, ENUM_TO_INT(SHOP_PED_COMPONENT))
// set dress legs.
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Force dress legs")
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_VAL_F_LEGS2_0"), COMP_TYPE_LEGS, 4)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_LEGS, eDummyItem, FALSE)
bItemFound = TRUE
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
ENDIF
#ENDIF
#IF USE_TU_CHANGES
IF NOT bItemFound
#ENDIF
// Check some dummy components 1st- to avoid having weird combos being used (such as parachutes)
eDummyItem = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, eCurrentCompType, iCurrentPropPos)
IF eDummyItem <> DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Looking for default item, type=", GET_PED_COMP_TYPE_STRING(eCurrentCompType))
// found a dummy item for this slot, see it if is suitable
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem, mPed)
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
// If this item has a corresponding JBIB, make sure we grab the correct SPECIAL.
IF eCurrentCompType = COMP_TYPE_SPECIAL
PED_COMP_NAME_ENUM eTempJBIB = GET_JBIB_FROM_SPECIAL(ePedModel, eDummyItem, GET_PED_TEXTURE_VARIATION(mPed, PED_COMP_SPECIAL))
IF eTempJBIB != DUMMY_PED_COMP
PED_COMP_NAME_ENUM eTempSpecial = GET_SPECIAL_COMP_FOR_JBIB_JACKET_VERSION(ePedModel, eDummyItem, eNewItem, GET_PED_TEXTURE_VARIATION(mPed, PED_COMP_SPECIAL))
IF eTempSpecial != DUMMY_PED_COMP
AND eTempSpecial != eDummyItem
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, eTempSpecial, eNewType, eNewItem, mPed)
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eTempSpecial, FALSE)
eDummyItem = eTempSpecial
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
bItemFound = TRUE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found item, ", eDummyItem)
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ELSE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Failed to set suitable item")
ENDIF
ENDIF
ENDIF
#IF USE_TU_CHANGES
ENDIF
#ENDIF
// ignore requisites
#IF USE_TU_CHANGES
IF GET_PED_COMPONENT_ITEM_REQUISITE_MP(mPed, ePedModel, eNewType, eNewItem, eCurrentCompType) = eCurrentItem
bItemFound = TRUE
ENDIF
#ENDIF
// see if DLC gives us an alternative
#IF USE_TU_CHANGES
// IF ePedModel = MP_F_FREEMODE_01
IF eNewType = COMP_TYPE_JBIB AND eNewItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_JBIB)
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, COMP_TYPE_JBIB, iCurrentPed)
IF iItemNameHash != -1
INT iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iItemNameHash)
INT iAltComp
INT iRetNameHash, iRetCompEnum, iRetType
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iItemNameHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF (iRetType = ENUM_TO_INT(PED_COMP_LEG) AND eCurrentCompType = COMP_TYPE_LEGS)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_LEGS, iCurrentPed)
// Forced on-disk item
ELSE
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetCompEnum)
ENDIF
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found alternative LEGS, ", eDummyItem)
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
iAltComp = iAltComps+1// Bail
ELIF (iRetType = ENUM_TO_INT(PED_COMP_SPECIAL) AND eCurrentCompType = COMP_TYPE_SPECIAL)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_SPECIAL, iCurrentPed)
// Forced on-disk item
ELSE
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetCompEnum)
ENDIF
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found alternative SPECIAL, ", eDummyItem)
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
iAltComp = iAltComps+1// Bail
ENDIF
ENDREPEAT
ENDIF
ELIF eNewType = COMP_TYPE_LEGS AND eNewItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_LEG)
INT iItemNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eNewItem, COMP_TYPE_LEGS, iCurrentPed)
IF iItemNameHash != -1
INT iAltComps = GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(iItemNameHash)
INT iAltComp
INT iRetNameHash, iRetCompEnum, iRetType
REPEAT iAltComps iAltComp
GET_VARIANT_COMPONENT(iItemNameHash, iAltComp, iRetNameHash, iRetCompEnum, iRetType)
IF (iRetType = ENUM_TO_INT(PED_COMP_FEET) AND eCurrentCompType = COMP_TYPE_FEET)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
eDummyItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, iRetNameHash, COMP_TYPE_FEET, iCurrentPed)
// Forced on-disk item
ELSE
eDummyItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetCompEnum)
ENDIF
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, eDummyItem, FALSE)
bItemFound = TRUE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found alternative FEET, ", eDummyItem)
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
iAltComp = iAltComps+1// Bail
ENDIF
ENDREPEAT
ENDIF
ENDIF
//ENDIF
#ENDIF
// run through other items to find a suitable one
WHILE iItem < PED_COMPONENTS_PER_TYPE AND NOT bItemFound
sTempData = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eCurrentCompType, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem))
IF sTempData.iItemBit = ENUM_TO_INT(DUMMY_PED_COMP)
iItem = PED_COMPONENTS_PER_TYPE // Bail
ELSE
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_MP(ePedModel, eCurrentCompType, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem), eNewType, eNewItem, mPed)
IF SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem), bMustBeAcquired)
bItemFound = TRUE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Found item, ", iItem)
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem))
ENDIF
ENDIF
ENDIF
iItem++
ENDWHILE
IF NOT bItemFound
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Failed to find suitable item, use default outfit")
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, OUTFIT_DEFAULT)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, sOutfitData.eItems[ENUM_TO_INT(eCurrentCompType)], FALSE) //force the default on. should always be available anyway
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem))
ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "DO_VALIDATION_CHECKS_FOR_ITEM_MP : Items compatible, eNewType=", GET_PED_COMP_TYPE_STRING(eNewType), ", eNewItem=", eNewItem, ", eCurrentCompType=", GET_PED_COMP_TYPE_STRING(eCurrentCompType), " eCurrentItem=", eCurrentItem)
ENDIF
ENDPROC
/// PURPOSE:
/// Forces a vlid combination of items for this ped.
/// PARAMS:
/// iTypeToCheck - set to -1 before validation checks. If this stays at -1 the outfit is already valid.
/// If an item is forced to change, this is set to the item type that forced the change.
///
/// iPropPosToCheck - If the type that forced the outfit to change is props,
/// this is set to the anchor of the prop that forced the change.
///
/// eNewType - the type of item we are checking.
///
/// iNewPropPos - the position of the prop we are checking. -1 if not a prop.
///
/// eItem - the name of the item we are checking.
///
/// mPed - the ped we are doing this check for.
///
/// bMustBeAcquired - if true we only used acquired items
PROC FORCE_VALID_COMBO_MP(INT &iTypeToCheck, INT &iPropPosToCheck, PED_COMP_TYPE_ENUM &eNewType, INT &iNewPropPos, PED_COMP_NAME_ENUM &eNewItem, PED_INDEX mPed, BOOL bMustBeAcquired)
//
// CALLS TO THIS FUNCTION MUST STEM FROM -----FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP()-----
//
CPRINTLN(DEBUG_PED_COMP, GET_PED_COMP_DEBUG_ID(), "FORCE_VALID_COMBO_MP : iTypeToCheck= ", GET_PED_COMP_TYPE_STRING(INT_TO_ENUM(PED_COMP_TYPE_ENUM, iTypeToCheck)), ", iPropPosToCheck= ", iPropPosToCheck)
INT iCompType
INT iCurrentPropType
PED_COMP_TYPE_ENUM eCurrentCompType
INT iStartType = iTypeToCheck
INT iPropStartType = iPropPosToCheck
PED_COMP_NAME_ENUM eReturnItem
PED_COMP_NAME_ENUM eCurrentItem
iTypeToCheck = -1 // if this stays as -1 the outfit is all sorted
// loop through and check all comp types starting with the type that was passed in
FOR iCompType = iStartType TO NUMBER_OF_PED_COMP_TYPES -1
eCurrentCompType = INT_TO_ENUM(PED_COMP_TYPE_ENUM, iCompType)
IF eCurrentCompType != COMP_TYPE_OUTFIT // Ignore outfit as these are always set in full
AND (eCurrentCompType != COMP_TYPE_HEAD OR NOT g_bInMultiplayer) // Ignoring heads for now as they mess with the MP head tech
IF eCurrentCompType = COMP_TYPE_PROPS
// props
// needs to loop through all prop anchors
FOR iCurrentPropType = iPropStartType TO NUMBER_OF_PED_PROP_TYPES -1
IF iCurrentPropType != iNewPropPos // No need to force same item
// get the current prop for this anchor
eCurrentItem = GET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType, iCurrentPropType)
DO_VALIDATION_CHECKS_FOR_ITEM_MP(mPed, eCurrentCompType, iCurrentPropType, eCurrentItem, eNewType, eNewItem, iTypeToCheck, iPropPosToCheck, eReturnItem, bMustBeAcquired)
ENDIF
ENDFOR
ELSE
IF eCurrentCompType != eNewType // No need to force same item
// Normal items and propgroups
// Not safe to mix?
eCurrentItem = GET_PED_COMP_ITEM_CURRENT_MP(mPed, eCurrentCompType)
DO_VALIDATION_CHECKS_FOR_ITEM_MP(mPed, eCurrentCompType, iCurrentPropType, eCurrentItem, eNewType, eNewItem, iTypeToCheck, iPropPosToCheck, eReturnItem, bMustBeAcquired)
ENDIF
ENDIF
ENDIF
ENDFOR
// update the info of the next item we need to force a valid combo for
IF iTypeToCheck <> -1
eNewType = INT_TO_ENUM(PED_COMP_TYPE_ENUM, iTypeToCheck)
iNewPropPos = iPropPosToCheck
eNewItem = eReturnItem
ENDIF
ENDPROC
/// PURPOSE:
/// Ensure everything matches the specified item
/// NOTE: Only works for items we can set in the wardrobe, excluding outfits
/// PARAMS:
/// mPed - the ped we are setting the item on
/// eType - the comp type of the item we are equipping
/// eItem - the name of the item we are equipping
/// bMustBeAcquired - TRUE if we only want to check for suitable items that are acquired
PROC FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP(PED_INDEX mPed, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bMustBeAcquired = TRUE)
IF NOT IS_PED_INJURED(mPed)
AND eType != COMP_TYPE_OUTFIT
// So we do not keep grabbing the item data for the new item grab it once and re-use throughout the force valid commands.
g_sMixItemDataForMainPedComp = GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(mPed), eType, eItem)
// keep forcing valid combo until whole outfit is ok
INT iTypeToCheck = ENUM_TO_INT(COMP_TYPE_HEAD)
INT iPropPosToCheck = ENUM_TO_INT(ANCHOR_HEAD)
INT iPropPos = ENUM_TO_INT(g_sMixItemDataForMainPedComp.ePropPos)
IF eType != COMP_TYPE_PROPS
iPropPos = -1
ENDIF
// force valid combo for whole outfit for this item
FORCE_VALID_COMBO_MP(iTypeToCheck, iPropPosToCheck, eType, iPropPos, eItem, mPed, bMustBeAcquired)
// if the outfit is not valid iTypeToCheck will have been updated
// to the comp type of the 1st item that was forced to change
// if iTypeToCheck <> -1, it means we have been forced to change an item
// re-check the outfit starting from that item type until whole outfit is ok
WHILE iTypeToCheck <> -1
FORCE_VALID_COMBO_MP(iTypeToCheck, iPropPosToCheck, eType, iPropPos, eItem, mPed, bMustBeAcquired)
ENDWHILE
// also need to check if we need to remove the player's tie
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed)
PED_COMP_NAME_ENUM eCurrentTeethItem
PED_COMP_NAME_ENUM eCurrentSpecialItem
eCurrentTeethItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_TEETH)
eCurrentSpecialItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_SPECIAL)
IF NOT DO_TEETH_CHECK_MP(ePedModel, eCurrentTeethItem, COMP_TYPE_SPECIAL, DUMMY_PED_COMP, eCurrentSpecialItem, DUMMY_PED_COMP, mPed)
CPRINTLN(DEBUG_PED_COMP, "Special item was forced to change. Removing tie.")
IF ePedModel = MP_M_FREEMODE_01
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_TEETH, TEETH_FMM_0_0, FALSE)
ELSE
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_TEETH, TEETH_FMF_0_0, FALSE)
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Forces the rest of the ped's outfit to be valid for wearing with the item passed in
/// PARAMS:
/// mPed - the ped whose outfit we are editing
/// eCurrentCompType - the comp type we are checking for compatibility with the new item
/// iCurrentPropPos - the prop pos of the item we are checking for compatibility
/// eCurrentItem - the currently equipped item of this type
/// eNewType - the type of the new item we are equipping
/// eNewItem - the new item we are equipping
/// iItemAltered - returns the type of the first item that was forced to change for outfit to be valid
/// iPropAltered - returns the prop pos of the first item that was forced to change for outfit to be valid
/// eReturnItem - returns the name of the first item that was forced to change for outfit to be valid
/// bMustBeAcquired - if True we only use acquired items in the checks
PROC DO_VALIDATION_CHECKS_FOR_ITEM_SP(PED_INDEX mPed, PED_COMP_TYPE_ENUM eCurrentCompType, INT iCurrentPropPos, PED_COMP_NAME_ENUM eCurrentItem, PED_COMP_TYPE_ENUM eNewType, PED_COMP_NAME_ENUM eNewItem, INT &iItemAltered, INT &iPropAltered, PED_COMP_NAME_ENUM &eReturnItem, BOOL bMustBeAcquired)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed)
PED_COMP_ITEM_DATA_STRUCT sTempData
IF NOT CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_SP(ePedModel, eCurrentCompType, eCurrentItem, eNewType, eNewItem)
// Set suitable alternative
CPRINTLN(DEBUG_PED_COMP, "Item not suitable for comp: ", GET_PED_COMP_TYPE_STRING(eCurrentCompType), " current Item = ", eCurrentItem, " using alternative. Can't be mixed with new item of type: ", GET_PED_COMP_TYPE_STRING(eNewType), " ", GET_PROP_POSITION_STRING(INT_TO_ENUM(PED_PROP_POSITION, iCurrentPropPos)))
BOOL bItemFound = FALSE
INT iItem = 0
PED_COMP_NAME_ENUM eDummyItem
// Check some dummy components 1st- to avoid having weird combos being used (such as parachutes)
eDummyItem = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, eCurrentCompType, iCurrentPropPos)
IF eDummyItem <> DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "Checking using dummy item: ", eDummyItem , GET_PED_COMP_TYPE_STRING(eCurrentCompType))
// found a dummy item for this slot, see it if is suitable
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_SP(ePedModel, eCurrentCompType, eDummyItem, eNewType, eNewItem)
IF SET_PED_COMP_ITEM_CURRENT_SP(mPed, eCurrentCompType, eDummyItem, bMustBeAcquired)
bItemFound = TRUE
CPRINTLN(DEBUG_PED_COMP, "...found dummy / default item: ", eDummyItem)
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, eDummyItem)
ENDIF
ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, "No Dummy item available: ", GET_PED_COMP_TYPE_STRING(eCurrentCompType))
ENDIF
// run through other items to find a suitable one
WHILE iItem < PED_COMPONENTS_PER_TYPE AND NOT bItemFound
sTempData = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eCurrentCompType, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem))
IF sTempData.iItemBit = ENUM_TO_INT(DUMMY_PED_COMP)
iItem = PED_COMPONENTS_PER_TYPE // Bail
ELSE
IF NOT IS_ITEM_LOCKED_UNTIL_ENDGAME(ePedModel, eCurrentCompType, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem))
IF CAN_PED_COMPONENT_ITEM_MIX_WITH_ITEM_SP(ePedModel, eCurrentCompType, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem), eNewType, eNewItem)
IF SET_PED_COMP_ITEM_CURRENT_SP(mPed, eCurrentCompType, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem), bMustBeAcquired)
bItemFound = TRUE
CPRINTLN(DEBUG_PED_COMP, "...found item ", iItem)
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem))
ENDIF
ENDIF
ENDIF
ENDIF
iItem++
ENDWHILE
IF NOT bItemFound
CPRINTLN(DEBUG_PED_COMP, "...couldn't find alternative so using default outfit item")
PED_COMP_OUTFIT_DATA_STRUCT sOutfitData = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, OUTFIT_DEFAULT)
SET_PED_COMP_ITEM_CURRENT_SP(mPed, eCurrentCompType, sOutfitData.eItems[ENUM_TO_INT(eCurrentCompType)], FALSE) //force the default on. should always be available anyway
VALIDATION_CHECKS_ITEM_ALTERED(eCurrentCompType, iCurrentPropPos, iItemAltered, iPropAltered, eReturnItem, INT_TO_ENUM(PED_COMP_NAME_ENUM, iItem))
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Forces a valid combination of items for this ped.
/// PARAMS:
/// iTypeToCheck - set to -1 before validation checks. If this stays at -1 the outfit is already valid.
/// If an item is forced to change, this is set to the item type that forced the change.
///
/// iPropPosToCheck - If the type that forced the outfit to change is props,
/// this is set to the anchor of the prop that forced the change.
///
/// eNewType - the type of item we are checking.
///
/// iNewPropPos - the position of the prop we are checking. -1 if not a prop.
///
/// eItem - the name of the item we are checking.
///
/// mPed - the ped we are doing this check for.
///
/// bMustBeAcquired - if true we only used acquired items
PROC FORCE_VALID_COMBO_SP(INT &iTypeToCheck, INT &iPropPosToCheck, PED_COMP_TYPE_ENUM &eNewType, INT &iNewPropPos, PED_COMP_NAME_ENUM &eNewItem, PED_INDEX mPed, BOOL bMustBeAcquired)
CPRINTLN(DEBUG_PED_COMP, "FORCE_VALID_COMBO_SP: iTypeToCheck= ", GET_PED_COMP_TYPE_STRING(INT_TO_ENUM(PED_COMP_TYPE_ENUM, iTypeToCheck)))
IF iPropPosToCheck > -1
CPRINTLN(DEBUG_PED_COMP, "FORCE_VALID_COMBO_SP: iPropPosToCheck= ", GET_PROP_POSITION_STRING(INT_TO_ENUM(PED_PROP_POSITION, iPropPosToCheck)))
ENDIF
INT iCompType
INT iCurrentPropType
PED_COMP_TYPE_ENUM eCurrentCompType
INT iStartType = iTypeToCheck
INT iPropStartType = iPropPosToCheck
PED_COMP_NAME_ENUM eReturnItem
PED_COMP_NAME_ENUM eCurrentItem
iTypeToCheck = -1 // if this stays as -1 the outfit is all sorted
// loop through and check all comp types starting with the type that was passed in
FOR iCompType = iStartType TO NUMBER_OF_PED_COMP_TYPES -1
eCurrentCompType = INT_TO_ENUM(PED_COMP_TYPE_ENUM, iCompType)
IF eCurrentCompType != COMP_TYPE_OUTFIT // Ignore outfit as these are always set in full
AND eCurrentCompType != COMP_TYPE_PROPGROUP // Ignore propgroups as they are handled by checking each prop
AND (eCurrentCompType != COMP_TYPE_HEAD OR NOT g_bInMultiplayer) // Ignoring heads for now as they mess with the MP head tech
IF eCurrentCompType = COMP_TYPE_PROPS
// props
// needs to loop through all prop anchors
FOR iCurrentPropType = iPropStartType TO NUMBER_OF_PED_PROP_TYPES -1
IF iCurrentPropType != iNewPropPos // No need to force same item
// get the current prop for this anchor
eCurrentItem = GET_PED_COMP_ITEM_CURRENT_SP(mPed, eCurrentCompType, iCurrentPropType)
DO_VALIDATION_CHECKS_FOR_ITEM_SP(mPed, eCurrentCompType, iCurrentPropType, eCurrentItem, eNewType, eNewItem, iTypeToCheck, iPropPosToCheck, eReturnItem, bMustBeAcquired)
ENDIF
ENDFOR
ELSE
IF eCurrentCompType != eNewType // No need to force same item
// Normal items
// Not safe to mix?
eCurrentItem = GET_PED_COMP_ITEM_CURRENT_SP(mPed, eCurrentCompType)
DO_VALIDATION_CHECKS_FOR_ITEM_SP(mPed, eCurrentCompType, iCurrentPropType, eCurrentItem, eNewType, eNewItem, iTypeToCheck, iPropPosToCheck, eReturnItem, bMustBeAcquired)
ENDIF
ENDIF
ENDIF
ENDFOR
// update the info of the next item we need to force a valid combo for
IF iTypeToCheck <> -1
CPRINTLN(DEBUG_PED_COMP, "FORCE_VALID_COMBO_SP : iTypeToCheck <> -1 update checks, iTypeToCheck = ", iTypeToCheck)
eNewType = INT_TO_ENUM(PED_COMP_TYPE_ENUM, iTypeToCheck)
iNewPropPos = iPropPosToCheck
eNewItem = eReturnItem
ENDIF
ENDPROC
/// PURPOSE:
/// Ensure everything matches the specified item
/// NOTE: Only works for items we can set in the wardrobe, excluding outfits
/// PARAMS:
/// ped - the ped we are setting the item on
/// eType - the comp type of the item we are equipping
/// eItem - the name of the item we are equipping
/// bMustBeAcquired - TRUE if we only want to check for suitable items that are acquired
PROC FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_SP(PED_INDEX mPed, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bMustBeAcquired = TRUE)
IF NOT IS_PED_INJURED(mPed)
AND eType != COMP_TYPE_OUTFIT
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed)
PED_COMP_TYPE_ENUM eInitialType = eType
PED_COMP_NAME_ENUM eInitialItem = eItem
// get info for this item
PED_COMP_ITEM_DATA_STRUCT mItemDetails = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
// keep forcing valid combo until whole outfit is ok
INT iTypeToCheck = ENUM_TO_INT(COMP_TYPE_HEAD)
INT iPropPosToCheck = ENUM_TO_INT(ANCHOR_HEAD)
INT iPropPos = ENUM_TO_INT(mItemDetails.ePropPos)
IF eType != COMP_TYPE_PROPS
iPropPos = -1
ENDIF
IF iPropPos > -1
CPRINTLN(DEBUG_PED_COMP,"FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_SP: iPropPos = ", GET_PROP_POSITION_STRING(INT_TO_ENUM(PED_PROP_POSITION, iPropPos)) , ". eType = ", GET_PED_COMP_TYPE_STRING(eType))
ENDIF
// force valid combo for whole outfit for this item
FORCE_VALID_COMBO_SP(iTypeToCheck, iPropPosToCheck, eType, iPropPos, eItem, mPed, bMustBeAcquired)
// if the outfit is not valid iTypeToCheck will have been updated
// to the comp type of the 1st item that was forced to change
// if iTypeToCheck <> -1, it means we have been forced to change an item
// re-check the outfit starting from that item type until whole outfit is ok
WHILE iTypeToCheck <> -1
FORCE_VALID_COMBO_SP(iTypeToCheck, iPropPosToCheck, eType, iPropPos, eItem, mPed, bMustBeAcquired)
ENDWHILE
// ------handle any last minute special cases here------------------
// special case for Michael's suit vest jbibs (1561846)
IF ePedModel = PLAYER_ZERO
IF eInitialType = COMP_TYPE_JBIB
IF (eInitialItem >= JBIB_P0_3_0 AND eInitialItem <= JBIB_P0_3_9)
OR (eInitialItem >= JBIB_P0_4_0 AND eInitialItem <= JBIB_P0_4_9)
OR (eInitialItem >= JBIB_P0_5_0 AND eInitialItem <= JBIB_P0_5_15)
CPRINTLN(DEBUG_PED_COMP, "Doing special case extra force valid for Michael's suit jbibs. TORSO")
iTypeToCheck = ENUM_TO_INT(COMP_TYPE_HEAD)
iPropPosToCheck = ENUM_TO_INT(ANCHOR_HEAD)
iPropPos = -1
eType = COMP_TYPE_TORSO
eItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, eType)
FORCE_VALID_COMBO_SP(iTypeToCheck, iPropPosToCheck, eType, iPropPos, eItem, mPed, bMustBeAcquired)
ENDIF
ENDIF
// special case for Franklin's jacket top jbibs (1541075)
ELIF ePedModel = PLAYER_ONE
IF eInitialType = COMP_TYPE_JBIB
IF (eInitialItem >= JBIB_P1_TSHIRT_0 AND eInitialItem <= JBIB_P1_TSHIRT_15)
CPRINTLN(DEBUG_PED_COMP, "Doing special case extra force valid for Franklin's jacket tops. TORSO")
iTypeToCheck = ENUM_TO_INT(COMP_TYPE_HEAD)
iPropPosToCheck = ENUM_TO_INT(ANCHOR_HEAD)
iPropPos = -1
eType = COMP_TYPE_TORSO
eItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, eType)
FORCE_VALID_COMBO_SP(iTypeToCheck, iPropPosToCheck, eType, iPropPos, eItem, mPed, bMustBeAcquired)
ENDIF
ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, "Doing final legs validation check now!!")
// ensure we dont end up with no feet
iTypeToCheck = ENUM_TO_INT(COMP_TYPE_HEAD)
iPropPosToCheck = ENUM_TO_INT(ANCHOR_HEAD)
iPropPos = -1
eType = COMP_TYPE_LEGS
eItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, eType)
FORCE_VALID_COMBO_SP(iTypeToCheck, iPropPosToCheck, eType, iPropPos, eItem, mPed, bMustBeAcquired)
ENDIF
ENDPROC
PROC ADD_PED_COMPONENT_ITEM_TO_LIMITED_WARDROBES(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eCompType, PED_COMP_NAME_ENUM eCompName, BOOL bWardrobeMustBeAvailable)
IF eCompName = DUMMY_PED_COMP
EXIT
ENDIF
#if USE_CLF_DLC
SWITCH ePedModel
CASE PLAYER_TWO
bWardrobeMustBeAvailable=bWardrobeMustBeAvailable
eCompType=eCompType
BREAK
ENDSWITCH
#endif
#if USE_NRM_DLC
SWITCH ePedModel
CASE PLAYER_ZERO
bWardrobeMustBeAvailable=bWardrobeMustBeAvailable
eCompType=eCompType
BREAK
CASE IG_JIMMYDISANTO
BREAK
CASE IG_TRACYDISANTO
BREAK
ENDSWITCH
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
SWITCH ePedModel
CASE PLAYER_ZERO
IF NOT bWardrobeMustBeAvailable
//OR Is_Savehouse_Respawn_Available(SAVEHOUSE_MICHAEL_CS)
OR IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_MICHAEL_CS], REPAWN_FLAG_AVAILABLE_BIT)
SET_BIT(g_savedGlobals.sPlayerData.sInfo.sLimitedWardrobeItems[LPW_MICHAEL_COUNTRYSIDE].iItemBitset[eCompType][(ENUM_TO_INT(eCompName)/32)], (ENUM_TO_INT(eCompName)%32))
ENDIF
BREAK
CASE PLAYER_TWO
IF NOT bWardrobeMustBeAvailable
//OR Is_Savehouse_Respawn_Available(SAVEHOUSE_TREVOR_VB)
OR IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_TREVOR_VB], REPAWN_FLAG_AVAILABLE_BIT)
SET_BIT(g_savedGlobals.sPlayerData.sInfo.sLimitedWardrobeItems[LPW_TREVOR_CITY].iItemBitset[eCompType][(ENUM_TO_INT(eCompName)/32)], (ENUM_TO_INT(eCompName)%32))
ENDIF
IF NOT bWardrobeMustBeAvailable
//OR Is_Savehouse_Respawn_Available(SAVEHOUSE_TREVOR_SC)
OR IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_TREVOR_SC], REPAWN_FLAG_AVAILABLE_BIT)
SET_BIT(g_savedGlobals.sPlayerData.sInfo.sLimitedWardrobeItems[LPW_TREVOR_STRIPCLUB].iItemBitset[eCompType][(ENUM_TO_INT(eCompName)/32)], (ENUM_TO_INT(eCompName)%32))
ENDIF
BREAK
ENDSWITCH
#endif
#endif
ENDPROC
/// PURPOSE: Specifies if a component item is available, acquired, and if it should be set as current
PROC SET_PED_COMP_ITEM_DETAILS_SP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bAvailable, BOOL bAcquired, BOOL bAddToLimitedWardrobe = FALSE, BOOL bAddToStartWardrobe = FALSE)
SET_PED_COMP_ITEM_AVAILABLE_SP(ePedModel, eType, eItem, bAvailable)
SET_PED_COMP_ITEM_ACQUIRED_SP(ePedModel, eType, eItem, bAcquired)
IF bAddToLimitedWardrobe
ADD_PED_COMPONENT_ITEM_TO_LIMITED_WARDROBES(ePedModel, eType, eItem, FALSE)
ENDIF
IF bAddToStartWardrobe = TRUE
SET_PED_COMP_ITEM_IS_NEW_SP(ePedModel, eType, eItem, FALSE)
ENDIF
ENDPROC
/// PURPOSE: Specifies if a component item is available, acquired, and if it should be set as current
PROC SET_PED_COMP_ITEM_DETAILS_MP(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, BOOL bAvailable, BOOL bAcquired)
SET_PED_COMP_ITEM_AVAILABLE_MP(ePedModel, eType, eItem, bAvailable)
SET_PED_COMP_ITEM_ACQUIRED_MP(ePedModel, eType, eItem, bAcquired)
ENDPROC
/// PURPOSE:
/// Gets the ID of the peds outfit. Singleplayer only!
/// PARAMS:
/// ped - the ped we are checking
/// RETURNS:
/// INT of the outfit
FUNC INT GET_CORE_OUTFIT_ID_FROM_PED(PED_INDEX ped)
INT iTorso = ENUM_TO_INT(GET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_TORSO))
INT iLegs = ENUM_TO_INT(GET_PED_COMP_ITEM_CURRENT_SP(ped, COMP_TYPE_LEGS))
RETURN iTorso + (iLegs*100)
ENDFUNC
/// PURPOSE:
/// Gets the ID of an outfit based on torso + leg components
/// PARAMS:
/// eTorso - the torso we are using for the outfit
/// eLegs - the legs we are using for the outfit
/// RETURNS:
/// INT id of the outfit
FUNC INT GET_CORE_OUTFIT_ID_FROM_COMPONENTS(PED_COMP_NAME_ENUM eTorso, PED_COMP_NAME_ENUM eLegs)
RETURN ENUM_TO_INT(eTorso) + (ENUM_TO_INT(eLegs)*100)
ENDFUNC
#IF IS_DEBUG_BUILD
/// PURPOSE: Debug proc to give the player all the component items
PROC SET_ALL_PED_COMPONENT_ITEMS_ACQUIRED()
g_bAllClothesAcquired = TRUE
ENDPROC
/// PURPOSE: Debug proc to make all ped comp items available
PROC SET_ALL_PED_COMPONENT_ITEMS_AVAILABLE()
g_bAllClothesAvailable = TRUE
ENDPROC
#ENDIF
/// PURPOSE:
/// If equipping a mask purge hats it doesn't fit with, and vice versa
/// PARAMS:
/// ped -
/// eType -
/// eItem -
PROC REMOVE_INVALID_PROP_ITEMS_FOR_ITEM(PED_INDEX ped, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(ped)
IF eType = eType
ENDIF
IF eItem = eItem
ENDIF
// At some point we should change this to query the prop type - hat/mask/glasses and remove accoringly.
SWITCH ePedModel
CASE MP_M_FREEMODE_01
BREAK
CASE MP_F_FREEMODE_01
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE:
/// Releases all preloaded variation data for a ped
PROC RELEASE_PRELOADED_OUTFIT(PED_INDEX mPed)
RELEASE_PED_PRELOAD_VARIATION_DATA(mPed)
RELEASE_PED_PRELOAD_PROP_DATA(mPed)
ENDPROC
/// PURPOSE:
/// Called by PRELOAD_OUTFIT and used in switch scenes. (SP only)
/// PARAMS:
/// sOutfitInfo - struct containing the outfit info
PROC PRELOAD_OUTFIT_FROM_STRUCT(PED_INDEX mPed, MODEL_NAMES ePedModel, PED_COMP_OUTFIT_DATA_STRUCT &sOutfitInfo)
INT iItem
// struct for individual item info
PED_COMP_ITEM_DATA_STRUCT sItemInfo
// loop through the items in this outfit and preload them
FOR iItem = 0 TO NUM_PED_COMPONENTS -1
sItemInfo = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, GET_COMP_TYPE_FROM_PED_COMPONENT(INT_TO_ENUM(PED_COMPONENT, iItem)), sOutfitInfo.eItems[GET_COMP_TYPE_FROM_PED_COMPONENT(INT_TO_ENUM(PED_COMPONENT, iItem))])
IF sItemInfo.iDrawable <>-1
AND sItemInfo.iTexture <> -1
CPRINTLN(DEBUG_PED_COMP, "Preloading item of comp type: ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT, iItem)), " sItemInfo.iDrawable: ", sItemInfo.iDrawable, " sItemInfo.iTexture= ", sItemInfo.iTexture)
SET_PED_PRELOAD_VARIATION_DATA(mPed, INT_TO_ENUM(PED_COMPONENT, iItem), sItemInfo.iDrawable, sItemInfo.iTexture)
ENDIF
ENDFOR
// propgroups
INT iProp
PED_PROP_TYPE_ENUM ePropType
PED_PROP_POSITION eAnchor
PED_COMP_NAME_ENUM eDummyProp
PED_COMP_PROPS_DATA_STRUCT sPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfitInfo.eItems[COMP_TYPE_PROPGROUP])
// Remove all the flagged props
FOR iProp = 0 TO NUMBER_OF_PED_PROP_TYPES-1
ePropType = INT_TO_ENUM(PED_PROP_TYPE_ENUM, iProp)
eAnchor = GET_ANCHOR_FOR_PED_PROP_TYPE(ePropType)
eDummyProp = GET_DUMMY_PROP_FOR_ANCHOR(eAnchor)
IF sPropGroupData.eItems[iProp] <> eDummyProp
// this propgroup contains a valid prop in this anchor
sItemInfo = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_PROPS, sPropGroupData.eItems[iProp])
IF sItemInfo.iDrawable != -1
AND sItemInfo.iDrawable != 255
CPRINTLN(DEBUG_PED_COMP, "Preloading prop for propgroup anchor: ", GET_PROP_POSITION_STRING(eAnchor), " sItemInfo.iDrawable: ", sItemInfo.iDrawable, " sItemInfo.iTexture= ", sItemInfo.iTexture)
SET_PED_PRELOAD_PROP_DATA(mPed, eAnchor, sItemInfo.iDrawable, sItemInfo.iTexture)
ELSE
// this propgroup has no prop in this anchor
//CPRINTLN(DEBUG_PED_COMP, "Invalid prop in propgroup anchor: ", GET_PROP_POSITION_STRING(eAnchor))
ENDIF
ELSE
// this propgroup has no prop in this anchor
CPRINTLN(DEBUG_PED_COMP, "No prop in propgroup anchor: ", GET_PROP_POSITION_STRING(eAnchor))
ENDIF
ENDFOR
ENDPROC
/// PURPOSE:
/// Preloads an outfit for a particular ped. Singleplayer only!
/// PARAMS:
/// mPed - the ped who will wear the outfit
/// eOutfit - the outfit you want to preload
PROC PRELOAD_OUTFIT(PED_INDEX mPed, PED_COMP_NAME_ENUM eOutfit)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed) // this ped's model
CPRINTLN(DEBUG_PED_COMP, "Preloading outfit for player:", ePedModel)
// struct of outfit info
PED_COMP_OUTFIT_DATA_STRUCT sOutfitInfo = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eOutfit)
PRELOAD_OUTFIT_FROM_STRUCT(mPed, ePedModel, sOutfitInfo)
ENDPROC
/// PURPOSE:
/// Preloads a ped component. Singleplayer only
/// PARAMS:
/// mPed - the oped who will wear the component
/// eCompType - the type of component to preload
/// eCompName - the name of the component
PROC PRELOAD_PED_COMP(PED_INDEX mPed, PED_COMP_TYPE_ENUM eCompType, PED_COMP_NAME_ENUM eCompName)
IF eCompType = COMP_TYPE_OUTFIT
OR eCompType = COMP_TYPE_PROPGROUP
EXIT
ENDIF
PED_COMP_ITEM_DATA_STRUCT sItemInfo
sItemInfo = GET_PED_COMP_DATA_FOR_ITEM_SP(GET_ENTITY_MODEL(mPed), eCompType, eCompName)
IF eCompType = COMP_TYPE_PROPS
IF sItemInfo.iDrawable <>-1
AND sItemInfo.iDrawable <> 255
SET_PED_PRELOAD_PROP_DATA(mPed, sItemInfo.ePropPos, sItemInfo.iDrawable, sItemInfo.iTexture)
ENDIF
ELSE
IF sItemInfo.iDrawable <>-1
AND sItemInfo.iTexture <> -1
SET_PED_PRELOAD_VARIATION_DATA(mPed, GET_PED_COMPONENT_FROM_TYPE(eCompType), sItemInfo.iDrawable, sItemInfo.iTexture)
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Preloads the stored variaions for the player ped specified
/// PARAMS:
/// mPed - ped index of the player ped you are preloading for
PROC PRELOAD_STORED_PLAYER_PED_VARIATIONCLF(PED_INDEX mPed)
INT iItem
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed) // this ped's model
enumCharacterList ePed // which player ped we are using
ePed = GET_PLAYER_CHARACTER_FROM_MODELCLF(ePedModel)
// loop through the items this player has stored and preload them
FOR iItem = 0 TO NUM_PED_COMPONENTS -1
IF g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem] <>-1
AND g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem] <> -1
CPRINTLN(DEBUG_PED_COMP, "Preloading for ", ePed, ". component ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT, iItem)), ". Drawable ", g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem], ". Variation ", g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem])
SET_PED_PRELOAD_VARIATION_DATA(mPed, INT_TO_ENUM(PED_COMPONENT, iItem), g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem], g_savedGlobalsClifford.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem])
ENDIF
ENDFOR
ENDPROC
PROC PRELOAD_STORED_PLAYER_PED_VARIATIONNRM(PED_INDEX mPed)
INT iItem
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed) // this ped's model
enumCharacterList ePed // which player ped we are using
ePed = GET_PLAYER_CHARACTER_FROM_MODELNRM(ePedModel)
// loop through the items this player has stored and preload them
FOR iItem = 0 TO NUM_PED_COMPONENTS -1
IF g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem] <>-1
AND g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem] <> -1
CPRINTLN(DEBUG_PED_COMP, "Preloading for ", ePed, ". component ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT, iItem)), ". Drawable ", g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem], ". Variation ", g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem])
SET_PED_PRELOAD_VARIATION_DATA(mPed, INT_TO_ENUM(PED_COMPONENT, iItem), g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem], g_savedGlobalsnorman.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem])
ENDIF
ENDFOR
ENDPROC
PROC PRELOAD_STORED_PLAYER_PED_VARIATION(PED_INDEX mPed)
#IF USE_CLF_DLC
IF g_bLoadedClifford
PRELOAD_STORED_PLAYER_PED_VARIATIONCLF(mped)
EXIT
ENDIF
#ENDIF
#IF USE_NRM_DLC
IF g_bLoadedNorman
PRELOAD_STORED_PLAYER_PED_VARIATIONNRM(mped)
EXIT
ENDIF
#ENDIF
INT iItem
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed) // this ped's model
enumCharacterList ePed // which player ped we are using
ePed = GET_PLAYER_CHARACTER_FROM_MODEL(ePedModel)
// loop through the items this player has stored and preload them
FOR iItem = 0 TO NUM_PED_COMPONENTS -1
IF g_savedGlobals.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem] <>-1
AND g_savedGlobals.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem] <> -1
CPRINTLN(DEBUG_PED_COMP, "Preloading for ", ePed, ". component ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT, iItem)), ". Drawable ", g_savedGlobals.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem], ". Variation ", g_savedGlobals.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem])
SET_PED_PRELOAD_VARIATION_DATA(mPed, INT_TO_ENUM(PED_COMPONENT, iItem), g_savedGlobals.sPlayerData.sInfo.sVariations[ePed].iDrawableVariation[iItem], g_savedGlobals.sPlayerData.sInfo.sVariations[ePed].iTextureVariation[iItem])
ENDIF
ENDFOR
ENDPROC
/// PURPOSE:
/// Checks if the item speicified is part of the programmer outfit used in Lester 1a.
/// PARAMS:
/// eItem - the item we are checking.
/// eType - the type of item we are checking.
/// RETURNS:
/// TRUE if this item can bepart of the programmer outfit. FALSE otherwise.
FUNC BOOL IS_ITEM_PART_OF_PROGRAMMER_OUTFIT(PED_COMP_NAME_ENUM eItem, PED_COMP_TYPE_ENUM eType)
IF eType = COMP_TYPE_TORSO
IF (eItem >= TORSO_P0_GILET_0 AND eItem <= TORSO_P0_GILET_5)
RETURN TRUE // this item is part of the programmer outfit
ENDIF
ELIF eType = COMP_TYPE_LEGS
IF (eItem >= LEGS_P0_CARGO_SHORTS_0 AND eItem <= LEGS_P0_CARGO_SHORTS_4)
RETURN TRUE // this item is part of the programmer outfit
ENDIF
ENDIF
RETURN FALSE//this item is not part of the programmer outfit
ENDFUNC
/// PURPOSE:
/// Checks if the ped has a prop equipped in any of the ped prop positions
/// (assumes you have checked the ped is alive)
/// PARAMS:
/// mPed - ped index of the ped we are checking
/// RETURNS:
/// TRUE if ped has any props equipped, false otherwise
FUNC BOOL DOES_PED_HAVE_ANY_PROPS_EQUIPPED(PED_INDEX mPed)
INT iPosition
FOR iPosition = 0 TO NUMBER_OF_PED_PROP_TYPES
IF GET_PED_PROP_INDEX(mPed, INT_TO_ENUM(PED_PROP_POSITION, iPosition)) <> -1
// if prop index isn't -1, the player has a prop equipped in this prop position
RETURN TRUE
ENDIF
ENDFOR
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Sets whether the boiler suits are available to buy from the shops
/// PARAMS:
/// bAvailable - TRUE = available, FALSE = unavailable
PROC SET_BOILER_SUIT_AVAILABILITY(BOOL bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_OUTFIT, OUTFIT_P0_PREP_BOILER_SUIT_1, bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_OUTFIT, OUTFIT_P0_PREP_BOILER_SUIT_2, bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_OUTFIT, OUTFIT_P0_PREP_BOILER_SUIT_3, bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_OUTFIT, OUTFIT_P1_PREP_BOILER_SUIT_1, bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_OUTFIT, OUTFIT_P1_PREP_BOILER_SUIT_2, bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_OUTFIT, OUTFIT_P1_PREP_BOILER_SUIT_3, bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_OUTFIT, OUTFIT_P2_PREP_BOILER_SUIT_1, bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_OUTFIT, OUTFIT_P2_PREP_BOILER_SUIT_2, bAvailable)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_OUTFIT, OUTFIT_P2_PREP_BOILER_SUIT_3, bAvailable)
ENDPROC
/// PURPOSE:
/// Sets all of the FBI prep mission masks as available
PROC MAKE_ALL_MASKS_AVAILABLE()
// Michael
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_MONSTER_GREEN, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_MONSTER_RED, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_PIG, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_PIG_DARK, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_SKULL_GREY, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_SKULL_YELLOW, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_MONKEY, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_HOCKEY_WHITE, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_HOCKEY_RED, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_APE, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_APE_DARK, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_TRIBAL_1, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_TRIBAL_2, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_PROPS, PROPS_P0_MASK_TRIBAL_3, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_SPECIAL2, SPECIAL2_P0_WRESTLER_MASK_0, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_SPECIAL2, SPECIAL2_P0_WRESTLER_MASK_1, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_SPECIAL2, SPECIAL2_P0_WRESTLER_MASK_2, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_SPECIAL2, SPECIAL2_P0_WRESTLER_MASK_3, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_SPECIAL2, SPECIAL2_P0_WRESTLER_MASK_4, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_SPECIAL2, SPECIAL2_P0_WRESTLER_MASK_5, TRUE)
// Franklin
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_MONSTER_GREEN, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_MONSTER_RED, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_PIG, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_PIG_DARK, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_SKULL_GREY, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_SKULL_YELLOW, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_MONKEY, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_HOCKEY_WHITE, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_HOCKEY_RED, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_APE, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_APE_DARK, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_TRIBAL_1, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_TRIBAL_2, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_PROPS, PROPS_P1_MASK_TRIBAL_3, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_SPECIAL2, SPECIAL2_P1_WRESTLER_MASK_0, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_SPECIAL2, SPECIAL2_P1_WRESTLER_MASK_1, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_SPECIAL2, SPECIAL2_P1_WRESTLER_MASK_2, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_SPECIAL2, SPECIAL2_P1_WRESTLER_MASK_3, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_SPECIAL2, SPECIAL2_P1_WRESTLER_MASK_4, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_SPECIAL2, SPECIAL2_P1_WRESTLER_MASK_5, TRUE)
// Trevor
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_PIG, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_PIG_DARK, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_SKULL_GREY, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_SKULL_YELLOW, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_MONKEY, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_HOCKEY_WHITE, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_HOCKEY_RED, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_APE, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_APE_DARK, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_TRIBAL_1, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_TRIBAL_2, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_PROPS, PROPS_P2_MASK_TRIBAL_3, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_SPECIAL2, SPECIAL2_P2_WRESTLER_MASK_0, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_SPECIAL2, SPECIAL2_P2_WRESTLER_MASK_1, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_SPECIAL2, SPECIAL2_P2_WRESTLER_MASK_2, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_SPECIAL2, SPECIAL2_P2_WRESTLER_MASK_3, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_SPECIAL2, SPECIAL2_P2_WRESTLER_MASK_4, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_SPECIAL2, SPECIAL2_P2_WRESTLER_MASK_5, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_SPECIAL2, SPECIAL2_P2_MASK_MONSTER_GREEN, TRUE)
SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_TWO, COMP_TYPE_SPECIAL2, SPECIAL2_P2_MASK_MONSTER_RED, TRUE)
ENDPROC
/// PURPOSE:
/// Checks whether specified item is a crew item
/// PARAMS:
/// eModel - character model used
/// eType - item type
/// eItem - enum of item we are checking
/// RETURNS:
/// TRUE if the item is a crew item. FALSE otherwise
FUNC BOOL IS_PED_COMPONENT_ITEM_CREW_ITEM(MODEL_NAMES eModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
SWITCH eModel
CASE MP_M_FREEMODE_01
IF eType = COMP_TYPE_JBIB
IF eItem = JBIB_FMM_0_0
RETURN TRUE
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
IF eItem = SPECIAL_FMM_0_0
OR eItem = SPECIAL_FMM_2_0
RETURN TRUE
ENDIF
ENDIF
BREAK
CASE MP_F_FREEMODE_01
IF eType = COMP_TYPE_JBIB
IF eItem = JBIB_FMF_0_0
RETURN TRUE
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
IF eItem = SPECIAL_FMF_0_0
OR eItem = SPECIAL_FMF_1_0
RETURN TRUE
ENDIF
ENDIF
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Request cut-scene component variations for an entire outfit. Singleplayer only!
/// PARAMS:
/// sSceneHandle - scene handle of the ped using this outfit
/// ePedModel - the model of the ped using the outfit
/// eOutfit - the outfit you want to request
PROC SET_CUTSCENE_PED_OUTFIT(STRING sSceneHandle, MODEL_NAMES ePedModel, PED_COMP_NAME_ENUM eOutfit)
PED_COMP_TYPE_ENUM eComponent
PED_COMP_ITEM_DATA_STRUCT mItemData
PED_COMP_PROPS_DATA_STRUCT mPropGroupData
PED_PROP_TYPE_ENUM ePropType
PED_PROP_POSITION eAnchor
PED_COMP_NAME_ENUM eDummyProp
INT iComponent
INT iProp
PED_COMP_OUTFIT_DATA_STRUCT sOutfit = GET_PED_COMPONENT_DATA_FOR_OUTFIT(ePedModel, eOutfit)
BOOL bUseStoredHair = FALSE
IF sOutfit.eItems[COMP_TYPE_HAIR] = DUMMY_PED_COMP
AND sOutfit.eItems[COMP_TYPE_HEAD] = DUMMY_PED_COMP
bUseStoredHair = TRUE
ENDIF
FOR iComponent = 0 TO NUMBER_OF_PED_COMP_TYPES-1
eComponent = INT_TO_ENUM(PED_COMP_TYPE_ENUM, iComponent)
IF eComponent<>COMP_TYPE_OUTFIT
AND eComponent<>COMP_TYPE_PROPS
IF eComponent = COMP_TYPE_PROPGROUP
// iterate through the props in this propgroup
mPropGroupData = GET_PED_COMPONENT_DATA_FOR_PROPGROUP(ePedModel, sOutfit.eItems[iComponent])
FOR iProp = 0 TO NUMBER_OF_PED_PROP_TYPES-1
ePropType = INT_TO_ENUM(PED_PROP_TYPE_ENUM, iProp)
eAnchor = GET_ANCHOR_FOR_PED_PROP_TYPE(ePropType)
eDummyProp = GET_DUMMY_PROP_FOR_ANCHOR(eAnchor)
IF mPropGroupData.eItems[iProp] <> eDummyProp
// this propgroup contains a valid prop in this anchor
mItemData = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, COMP_TYPE_PROPS, mPropGroupData.eItems[iProp])
CPRINTLN(DEBUG_PED_COMP, "Setting cutscene prop for ", sSceneHandle, " anchor: ", GET_PROP_POSITION_STRING(eAnchor), " mItemData.iDrawable: ", mItemData.iDrawable, " mItemData.iTexture= ", mItemData.iTexture)
SET_CUTSCENE_PED_PROP_VARIATION(sSceneHandle, mItemData.ePropPos, mItemData.iDrawable, 0, ePedModel)
ELSE
// this propgroup has no prop in this anchor
CPRINTLN(DEBUG_PED_COMP, "No prop in propgroup anchor: ", GET_PROP_POSITION_STRING(eAnchor))
ENDIF
ENDFOR
ELSE
// normal item
// get the item data for this comp type and request it
mItemData = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eComponent, sOutfit.eItems[iComponent])
// Overwrite the hair and head variations if this outfit doesnt set them.
IF ((iComponent = ENUM_TO_INT(COMP_TYPE_HAIR) OR iComponent = ENUM_TO_INT(COMP_TYPE_HEAD)) AND bUseStoredHair)
OR sOutfit.eItems[iComponent] = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "SET_CUTSCENE_PED_OUTFIT is going to use stored variation as ", GET_PED_COMP_TYPE_STRING(INT_TO_ENUM(PED_COMP_TYPE_ENUM, iComponent)), " is DUMMY_PED_COMP")
mItemData.iDrawable = g_savedGlobals.sPlayerData.sInfo.sVariations[mItemData.iPedID].iDrawableVariation[iComponent]
mItemData.iTexture = g_savedGlobals.sPlayerData.sInfo.sVariations[mItemData.iPedID].iTextureVariation[iComponent]
ENDIF
CPRINTLN(DEBUG_PED_COMP, "Setting cutscene item for ", sSceneHandle, ", ", GET_PED_COMP_TYPE_STRING(INT_TO_ENUM(PED_COMP_TYPE_ENUM, iComponent)), " mItemData.iDrawable: ", mItemData.iDrawable, " mItemData.iTexture= ", mItemData.iTexture)
SET_CUTSCENE_PED_COMPONENT_VARIATION(sSceneHandle, GET_PED_COMPONENT_FROM_TYPE(eComponent), mItemData.iDrawable, mItemData.iTexture, ePedModel)
ENDIF
ENDIF
ENDFOR
ENDPROC
/// PURPOSE:
/// Clears blood decals for the selected item
/// PARAMS:
/// mPed - player ped or the cutscene ped
/// eCompType - ped comp type of the item being tried / bought
/// eItem - the item being tried / bought
PROC CLEAR_BLOOD_DECALS_FOR_ITEM(PED_INDEX mPed, PED_COMP_TYPE_ENUM eCompType, PED_PROP_TYPE_ENUM ePropType = PROP_TYPE_DUMMY, BOOL bClearSweat = TRUE)
CPRINTLN(DEBUG_SHOPS, "Clearing blood decals for eCompType.", GET_PED_COMP_TYPE_STRING(eCompType))
IF DOES_ENTITY_EXIST(mPed)
IF NOT IS_PED_INJURED(mPed)
SWITCH eCompType
CASE COMP_TYPE_HEAD
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_HEAD)
BREAK
CASE COMP_TYPE_TORSO
CASE COMP_TYPE_DECL
CASE COMP_TYPE_JBIB
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_TORSO)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_LEFT_ARM)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_RIGHT_ARM)
BREAK
CASE COMP_TYPE_LEGS
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_LEFT_LEG)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_RIGHT_LEG)
BREAK
CASE COMP_TYPE_FEET
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_LEFT_LEG)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_RIGHT_LEG)
BREAK
CASE COMP_TYPE_HAND
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_LEFT_ARM)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_RIGHT_ARM)
BREAK
CASE COMP_TYPE_OUTFIT
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_HEAD)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_TORSO)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_LEFT_LEG)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_RIGHT_LEG)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_LEFT_ARM)
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_RIGHT_ARM)
BREAK
CASE COMP_TYPE_PROPS
SWITCH GET_ANCHOR_FOR_PED_PROP_TYPE(ePropType)
CASE ANCHOR_HEAD
CASE ANCHOR_EYES
CASE ANCHOR_EARS
CASE ANCHOR_MOUTH
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_HEAD)
BREAK
CASE ANCHOR_LEFT_HAND
CASE ANCHOR_LEFT_WRIST
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_LEFT_ARM)
BREAK
CASE ANCHOR_RIGHT_HAND
CASE ANCHOR_RIGHT_WRIST
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_RIGHT_ARM)
BREAK
CASE ANCHOR_HIP
CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(mPed, PDZ_TORSO)
BREAK
ENDSWITCH
BREAK
ENDSWITCH
// clear sweat too
IF bClearSweat = TRUE
IF eCompType = COMP_TYPE_OUTFIT
OR eCompType = COMP_TYPE_TORSO
OR eCompType = COMP_TYPE_DECL
OR eCompType = COMP_TYPE_JBIB
SET_PED_SWEAT(mPed, 0.0)
//CPRINTLN(DEBUG_PED_COMP, "Clearing sweat from torso / outfit / jbib / decal.")
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Checks if the player has acquired any variation of this item. (SP only)
/// PARAMS:
/// mPed - the ped we are checking
/// eType - comp type we are checking
/// eItem - the item we are checking for variations of
/// iLimitedItems - set bits in here matching the texture number to only use these items in this check (set to 0 to use all)
/// RETURNS:
/// TRUE if player owns any variations of this item. FALSE otherwise
FUNC BOOL IS_ANY_VARIATION_OF_ITEM_ACQUIRED_SP(PED_INDEX mPed, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, INT iLimitedItems)
PED_COMP_ITEM_DATA_STRUCT mItem
PED_COMP_ITEM_DATA_STRUCT mCurrentItem
INT iNumberOfTextures
PED_COMPONENT ePedComp
MODEL_NAMES ePedModel
INT iFirstVariationEnum
PED_COMP_NAME_ENUM eCurrentItem
INT iVariation
INT iCurrentVariation
// see how many variations this item has
ePedModel = GET_ENTITY_MODEL(mPed)
mItem = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
IF eType = COMP_TYPE_PROPS
iNumberOfTextures = GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(mPed, mItem.ePropPos, mItem.iDrawable)
ELSE
ePedComp = GET_PED_COMPONENT_FROM_TYPE(eType)
iNumberOfTextures = GET_NUMBER_OF_PED_TEXTURE_VARIATIONS(mPed, ePedComp, mItem.iDrawable)
ENDIF
//CPRINTLN(DEBUG_PED_COMP, "IAVOIA: item is [", mItem.iDrawable, ",", mItem.iTexture, "]")
// work out the ped enum number of the 1st variation of this drawable
iFirstVariationEnum = ENUM_TO_INT(eItem) - mItem.iTexture
// find a suitable random item
FOR iVariation = 0 TO iNumberOfTextures -1
// turn this into a ped comp enum
iCurrentVariation = iVariation + iFirstVariationEnum
eCurrentItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iCurrentVariation)
mCurrentItem = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eCurrentItem)
//CPRINTLN(DEBUG_PED_COMP, "IAVOIA: eCurrentItem = ", eCurrentItem)
//CPRINTLN(DEBUG_PED_COMP, "IAVOIA: iCurrentVariation ", iCurrentVariation)
// check if this item is suitable
IF NOT IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_OUTFIT_ONLY_BIT)
AND IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_AVAILABLE_BIT)
AND IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_ACQUIRED_BIT)
AND (IS_BIT_SET(iLimitedItems, iVariation) OR iLimitedItems = 0)
//CPRINTLN(DEBUG_PED_COMP, "IAVOIA: Found suitable item. ", eCurrentItem, " iCurrentVariation= ", iCurrentVariation)
RETURN TRUE
ELSE
// not suitable, try again
//CPRINTLN(DEBUG_PED_COMP, "IAVOIA: Item not suitable.", eCurrentItem)
IF NOT IS_BIT_SET(iLimitedItems, iVariation)
AND iLimitedItems != 0
//CPRINTLN(DEBUG_PED_COMP, "IAVOIA: Item limited.", eCurrentItem, " iCurrentVariation= ",iCurrentVariation)
ENDIF
ENDIF
ENDFOR
RETURN FALSE // no variations of this item have been acquired
ENDFUNC
/// PURPOSE:
/// Checks if the player has acquired any variation of this item. (MP only)
/// PARAMS:
/// mPed - the ped we are checking
/// eType - comp type we are checking
/// eItem - the item we are checking for variations of
/// iLimitedItems - set bits in here matching the texture number to only use these items in this check (set to 0 to use all)
/// RETURNS:
/// TRUE if player owns any variations of this item. FALSE otherwise
FUNC BOOL IS_ANY_VARIATION_OF_ITEM_ACQUIRED_MP(PED_INDEX mPed, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, INT iLimitedItems)
PED_COMP_ITEM_DATA_STRUCT mItem
PED_COMP_ITEM_DATA_STRUCT mCurrentItem
INT iNumberOfTextures
PED_COMPONENT ePedComp
MODEL_NAMES ePedModel
INT iFirstVariationEnum
PED_COMP_NAME_ENUM eCurrentItem
INT iVariation
INT iCurrentVariation
// see how many variations this item has
ePedModel = GET_ENTITY_MODEL(mPed)
mItem = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eItem)
IF eType = COMP_TYPE_PROPS
iNumberOfTextures = GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(mPed, mItem.ePropPos, mItem.iDrawable)
ELSE
ePedComp = GET_PED_COMPONENT_FROM_TYPE(eType)
iNumberOfTextures = GET_NUMBER_OF_PED_TEXTURE_VARIATIONS(mPed, ePedComp, mItem.iDrawable)
ENDIF
CPRINTLN(DEBUG_PED_COMP, "IAVOIA: item is [", mItem.iDrawable, ",", mItem.iTexture, "]")
// work out the ped enum number of the 1st variation of this drawable
iFirstVariationEnum = ENUM_TO_INT(eItem) - mItem.iTexture
// find a suitable random item
FOR iVariation = 0 TO iNumberOfTextures -1
// turn this into a ped comp enum
iCurrentVariation = iVariation + iFirstVariationEnum
eCurrentItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iCurrentVariation)
mCurrentItem = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, eType, eCurrentItem)
CPRINTLN(DEBUG_PED_COMP, "IAVOIA: eCurrentItem = ", eCurrentItem)
CPRINTLN(DEBUG_PED_COMP, "IAVOIA: iCurrentVariation ", iCurrentVariation)
// check if this item is suitable
IF NOT IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_OUTFIT_ONLY_BIT)
AND IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_AVAILABLE_BIT)
AND IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_ACQUIRED_BIT)
AND (IS_BIT_SET(iLimitedItems, iVariation) OR iLimitedItems = 0)
CPRINTLN(DEBUG_PED_COMP, "IAVOIA: Found suitable item. ", eCurrentItem, " iCurrentVariation= ", iCurrentVariation)
RETURN TRUE
ELSE
// not suitable, try again
CPRINTLN(DEBUG_PED_COMP, "IAVOIA: Item not suitable.", eCurrentItem)
IF NOT IS_BIT_SET(iLimitedItems, iVariation)
AND iLimitedItems != 0
CPRINTLN(DEBUG_PED_COMP, "IAVOIA: Item limited.", eCurrentItem, " iCurrentVariation= ",iCurrentVariation)
ENDIF
ENDIF
ENDFOR
RETURN FALSE // no variations of this item have been acquired
ENDFUNC
/// PURPOSE:
/// Returns a random ped comp item of same type and drawable as one passed in
/// (item is available, acquired and not outfit only)
/// PARAMS:
/// mPed - the ped we are getting the item for
/// eType - the item type we need
/// eItem - the item we want to use same drawable as
/// iCheckAcquired - uses a bitset to specify which items we need to check the acquired status of
/// iLimitedItems - uses a bitset to limit random items to just those specified
/// iForcedLegs - used to make top and pants match- variation number is passed in
/// RETURNS:
/// Random item, or the item passed in if fails to find alternative
FUNC PED_COMP_NAME_ENUM GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(PED_INDEX mPed, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem, INT iCheckAcquired, INT iLimitedItems, INT &iForcedLegs)
PED_COMP_ITEM_DATA_STRUCT mItem
PED_COMP_ITEM_DATA_STRUCT mRandomItem
INT iNumberOfTextures
PED_COMPONENT ePedComp
MODEL_NAMES ePedModel
INT iRandomVariation
INT iRandomTexture
INT iFirstVariationEnum
PED_COMP_NAME_ENUM eRandomItem
INT iRandomAttempts = 0
INT iCurrentVariation, iVariation
PED_COMP_ITEM_DATA_STRUCT mCurrentItem
PED_COMP_NAME_ENUM eCurrentItem
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: For type .", GET_PED_COMP_TYPE_STRING(eType), " eItem= ", eItem)
// see how many variations this item has
ePedModel = GET_ENTITY_MODEL(mPed)
mItem = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eItem)
IF eType = COMP_TYPE_PROPS
iNumberOfTextures = GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(mPed, mItem.ePropPos, mItem.iDrawable)
ELSE
ePedComp = GET_PED_COMPONENT_FROM_TYPE(eType)
iNumberOfTextures = GET_NUMBER_OF_PED_TEXTURE_VARIATIONS(mPed, ePedComp, mItem.iDrawable)
ENDIF
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: item is [", mItem.iDrawable, ",", mItem.iTexture, "]")
// work out the ped enum number of the 1st variation of this drawable
iFirstVariationEnum = ENUM_TO_INT(eItem) - mItem.iTexture
IF eType = COMP_TYPE_LEGS
IF iForcedLegs > -1
// we're forcing the legs to match a top we've already set
// turn this into a ped comp enum
iCurrentVariation = iForcedLegs + iFirstVariationEnum
eCurrentItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iCurrentVariation)
mCurrentItem = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eCurrentItem)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: ForcedLegs: eCurrentItem = ", eCurrentItem)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: ForcedLegs: iForcedLegs ", iForcedLegs)
// skip the acquired checks
// (forced legs only used for Franklin+ his jackets and matching pants get acquired together)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: ForcedLegs:Found suitable item. ", eCurrentItem, " iCurrentVariation= ", iCurrentVariation)
RETURN eCurrentItem
ENDIF
ENDIF
// find a suitable random item
WHILE iRandomAttempts < 5
// pick a random variation
iRandomTexture = GET_RANDOM_INT_IN_RANGE(0, iNumberOfTextures)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: Trying variaition .", iRandomTexture)
// turn this into a ped comp enum
iRandomVariation = iRandomTexture + iFirstVariationEnum
eRandomItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iRandomVariation)
mRandomItem = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eRandomItem)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: eRandomItem = .", eRandomItem)
// check if this item is suitable
IF NOT IS_BIT_SET(mRandomItem.iProperties, PED_COMPONENT_OUTFIT_ONLY_BIT)
AND IS_BIT_SET(mRandomItem.iProperties, PED_COMPONENT_AVAILABLE_BIT)
AND IS_BIT_SET(mRandomItem.iProperties, PED_COMPONENT_ACQUIRED_BIT)
AND (IS_BIT_SET(iLimitedItems, iRandomTexture) OR iLimitedItems=0)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: Found suitable random item. ", eRandomItem)
IF eType = COMP_TYPE_TORSO
iForcedLegs = iRandomTexture
ENDIF
RETURN eRandomItem
ELSE
// not suitable, try again
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: Item not suitable.", eRandomItem)
IF NOT IS_BIT_SET(iLimitedItems, iRandomTexture)
AND iLimitedItems !=0
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: Item is limited. ", eRandomItem, " iRandomTexture= ", iRandomTexture)
ENDIF
iRandomAttempts++
ENDIF
ENDWHILE
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: Too many attempts. Return item passed in.", eItem)
IF IS_BIT_SET(iCheckAcquired, ENUM_TO_INT(eType))
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: doing must be acquired check")
// if the bit is set for this comp type,
// run through all variations and return the 1st acquired one
// find a suitable random item
FOR iVariation = 0 TO iNumberOfTextures -1
// turn this into a ped comp enum
iCurrentVariation = iVariation + iFirstVariationEnum
eCurrentItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iCurrentVariation)
mCurrentItem = GET_PED_COMP_DATA_FOR_ITEM_SP(ePedModel, eType, eCurrentItem)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: eCurrentItem = ", eCurrentItem)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: iVariation ", iVariation)
// check if this item is suitable
IF NOT IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_OUTFIT_ONLY_BIT)
AND IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_AVAILABLE_BIT)
AND IS_BIT_SET(mCurrentItem.iProperties, PED_COMPONENT_ACQUIRED_BIT)
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: Found suitable item. ", eCurrentItem, " iCurrentVariation= ", iCurrentVariation)
IF eType = COMP_TYPE_TORSO
iForcedLegs = iVariation
ENDIF
RETURN eCurrentItem
ELSE
// not suitable, try again
CPRINTLN(DEBUG_PED_COMP, "GRAIODAT: Item not suitable.", eCurrentItem)
ENDIF
ENDFOR
ENDIF
// failed to find another suitable item, return the item passed in (should always be valid)
RETURN eItem
ENDFUNC
/// PURPOSE:
/// Fills outfit data struct ready for use in a switch scene
/// PARAMS:
/// mPed - the ped we're setting the outfit for
/// mOutfit - the outfit struct we're filling
/// eTorso - the torso we want to use
/// eLegs - the legs we want to use
/// eFeet - the feet we want to use
PROC FILL_OUTFIT_FOR_SWITCH_SCENE(PED_INDEX mPed, PED_COMP_NAME_ENUM eTorso, PED_COMP_NAME_ENUM eLegs, PED_COMP_NAME_ENUM eFeet, PED_COMP_NAME_ENUM eHand, PED_COMP_NAME_ENUM eSpecial, PED_COMP_NAME_ENUM eJbib, PED_COMP_NAME_ENUM eHeadProp, PED_COMP_NAME_ENUM eEyeProp, INT iLimitedTorsos, BOOL bDoRandom = TRUE, INT iCheckAcquired = 0, BOOL bMatchingTopAndPants = FALSE)
MODEL_NAMES ePedModel
INT iForcedLegs
ePedModel = GET_ENTITY_MODEL(mPed)
IF bDoRandom = TRUE
eTorso = GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(mPed, COMP_TYPE_TORSO, eTorso, iCheckAcquired, iLimitedTorsos, iForcedLegs)
IF bMatchingTopAndPants =FALSE
// if we're making the top and pants match we need to get the texture number of the top
// this is done by passing iForcedLegs into the legs check below
// if we're not making them match, we just reset it to -1 here
iForcedLegs = -1
ENDIF
eLegs = GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(mPed, COMP_TYPE_LEGS, eLegs, iCheckAcquired, 0, iForcedLegs)
eFeet = GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(mPed, COMP_TYPE_FEET, eFeet, iCheckAcquired, 0, iForcedLegs)
eHand = GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(mPed, COMP_TYPE_HAND, eHand, iCheckAcquired, 0, iForcedLegs)
eSpecial = GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(mPed, COMP_TYPE_SPECIAL, eSpecial, iCheckAcquired, 0, iForcedLegs)
eJbib = GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(mPed, COMP_TYPE_JBIB, eJbib, iCheckAcquired, 0, iForcedLegs)
eHeadProp = GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(mPed, COMP_TYPE_PROPS, eHeadProp, iCheckAcquired, 0, iForcedLegs)
eEyeProp = GET_RANDOM_ACQUIRED_ITEM_OF_DRAWABLE_AND_TYPE(mPed, COMP_TYPE_PROPS, eEyeProp, iCheckAcquired, 0, iForcedLegs)
ENDIF
SWITCH ePedModel
// Michael
CASE PLAYER_ZERO
// clear decls + jbibs so requisites come through
SET_PED_COMP_ITEM_CURRENT_SP(mPed, COMP_TYPE_DECL, DECL_P0_NONE, FALSE)
// fill outfit
FILL_PED_COMPONENT_OUTFIT_DATA(g_sTempOutfitData, DUMMY_PED_COMP, DUMMY_PED_COMP, eTorso, eLegs, eFeet, eHand, eSpecial, SPECIAL2_P0_NONE, DUMMY_PED_COMP, DUMMY_PED_COMP, TEETH_P0_NONE, eJbib, PROPGROUP_NONE)
BREAK
// Franklin
CASE PLAYER_ONE
// clear decls + jbibs so requisites come through
SET_PED_COMP_ITEM_CURRENT_SP(mPed, COMP_TYPE_DECL, DECL_P1_NONE, FALSE)
// fill outfit
FILL_PED_COMPONENT_OUTFIT_DATA(g_sTempOutfitData, DUMMY_PED_COMP, DUMMY_PED_COMP, eTorso, eLegs, eFeet, eHand, eSpecial, SPECIAL2_P1_NONE, DUMMY_PED_COMP, DUMMY_PED_COMP, TEETH_P1_NONE, eJbib, PROPGROUP_NONE)
BREAK
// Trevor
CASE PLAYER_TWO
// clear decls + jbibs so requisites come through
SET_PED_COMP_ITEM_CURRENT_SP(mPed, COMP_TYPE_DECL, DECL_P2_NONE, FALSE)
// fill outfit
FILL_PED_COMPONENT_OUTFIT_DATA(g_sTempOutfitData, DUMMY_PED_COMP, DUMMY_PED_COMP, eTorso, eLegs, eFeet, eHand, eSpecial, SPECIAL2_P2_NONE, DUMMY_PED_COMP, DUMMY_PED_COMP, TEETH_P2_NONE, eJbib, PROPGROUP_NONE)
BREAK
ENDSWITCH
// build prop group
FILL_PED_COMPONENT_PROPS_DATA(g_sTempPropGroupData, eHeadProp, eEyeProp)
ENDPROC
/// PURPOSE:
/// Returns whether this legs drawable is an underwear item (SP only)
/// PARAMS:
/// ePed - the character we are checking for
/// iLegsDrawable - the drawable number of the legs component we are checking
/// RETURNS:
/// TRUE if underwear. FALSE otherwise
FUNC BOOL IS_LEGS_DRAWABLE_UNDERWEAR(enuMCharacterList ePed, INT iLegsDrawable)
IF ePed = CHAR_MICHAEL
// LEGS_P0_BED - LEGS_P0_BOXERS_7
IF iLegsDrawable = 18
CPRINTLN(DEBUG_PED_COMP, "IS_LEGS_DRAWABLE_UNDERWEAR: CHAR_MICHAEL in underwear.")
RETURN TRUE
ENDIF
ELIF ePed = CHAR_FRANKLIN
// LEGS_P1_BOXERS - LEGS_P1_BOXERS_5
IF iLegsDrawable = 18
CPRINTLN(DEBUG_PED_COMP, "IS_LEGS_DRAWABLE_UNDERWEAR: CHAR_FRANKLIN in underwear.")
RETURN TRUE
ENDIF
ELIF ePed = CHAR_TREVOR
//LEGS_P2_UNDERWEAR - LEGS_P2_UNDERWEAR_9
IF iLegsDrawable = 22
CPRINTLN(DEBUG_PED_COMP, "IS_LEGS_DRAWABLE_UNDERWEAR: CHAR_TREVOR in underwear.")
RETURN TRUE
// LEGS_P2_UNDERWEAR_BF_0 - LEGS_P2_UNDERWEAR_BF_9
ELIF iLegsDrawable = 26
CPRINTLN(DEBUG_PED_COMP, "IS_LEGS_DRAWABLE_UNDERWEAR: CHAR_TREVOR in underwear.")
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Returns true if the item passed in is underwear or bare chest (SP only at the moment)
/// PARAMS:
/// ePedModel - model of the ped we are checking
/// eType - comp type (torso or legs)
/// eItem - item we are checking
/// RETURNS:
/// TRUE if underwear or bare chest
FUNC BOOL IS_ITEM_UNDERWEAR(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
IF ePedModel = PLAYER_ZERO
IF eType = COMP_TYPE_LEGS
IF (eItem >= LEGS_P0_BED AND eItem <= LEGS_P0_BOXERS_7)
RETURN TRUE
ENDIF
ELIF eType = COMP_TYPE_TORSO
IF eItem = TORSO_P0_BARE_CHEST
OR (eItem >= TORSO_P0_BED AND eItem <= TORSO_P0_VEST_4)
RETURN TRUE
ENDIF
ENDIF
ELIF ePedModel = PLAYER_ONE
IF eType = COMP_TYPE_LEGS
IF (eItem >= LEGS_P1_BOXERS AND eItem <= LEGS_P1_BOXERS_5)
RETURN TRUE
ENDIF
ELIF eType = COMP_TYPE_TORSO
IF eItem = TORSO_P1_BARE_CHEST
RETURN TRUE
ENDIF
ENDIF
ELIF ePedModel = PLAYER_TWO
IF eType = COMP_TYPE_LEGS
IF (eItem >= LEGS_P2_UNDERWEAR AND eItem <= LEGS_P2_UNDERWEAR_9)
OR (eItem >= LEGS_P2_UNDERWEAR_BF_0 AND eItem <= LEGS_P2_UNDERWEAR_BF_9)
RETURN TRUE
ENDIF
ELIF eType = COMP_TYPE_TORSO
IF eItem = TORSO_P2_NONE
RETURN TRUE
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Returns true if the ped is wearing underwear (legs)
/// RETURNS:
/// TRUE if underwear legs equipped. FALSE otherwise
FUNC BOOL IS_PED_IN_UNDERWEAR_SP(PED_INDEX mPed)
PED_COMP_NAME_ENUM eLegs
MODEL_NAMES ePedModel
ePedModel = GET_ENTITY_MODEL(mPed)
eLegs = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_LEGS)
RETURN IS_ITEM_UNDERWEAR(ePedModel, COMP_TYPE_LEGS, eLegs)
ENDFUNC
/// PURPOSE:
/// Checks if Michael is smart clothes.
/// RETURNS:
/// TRUE if outfit is suitable for triggering mission in (jewel setup 1 + ). FALSE otherwise
FUNC BOOL IS_MICHAEL_WEARING_SMART_OUTFIT()
PED_COMP_NAME_ENUM eCurrentItem
// Torso
eCurrentItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(PLAYER_PED_ID(), COMP_TYPE_TORSO)
IF (eCurrentItem >= TORSO_P0_GREY_SUIT AND eCurrentItem <= TORSO_P0_GREY_SUIT_15)
OR (eCurrentItem >= TORSO_P0_SUIT_JACKET AND eCurrentItem <= TORSO_P0_SUIT_JACKET_15)
OR (eCurrentItem >= TORSO_P0_VNECK AND eCurrentItem <= TORSO_P0_VNECK_9)
OR (eCurrentItem >= TORSO_P0_DRESS_SHIRT AND eCurrentItem <= TORSO_P0_DRESS_SHIRT_7)
OR eCurrentItem = TORSO_P0_MOVIE_TUXEDO
// torso is suitable
ELSE
// torso not suitable
RETURN FALSE
ENDIF
// Legs
eCurrentItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(PLAYER_PED_ID(), COMP_TYPE_LEGS)
IF (eCurrentItem >= LEGS_P0_GREY_SUIT AND eCurrentItem <= LEGS_P0_GREY_SUIT_15)
OR eCurrentItem = LEGS_P0_BLACK_TROUSERS
//legs are suitable
ELSE
// legs not suitable
RETURN FALSE
ENDIF
// Feet
eCurrentItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(PLAYER_PED_ID(), COMP_TYPE_FEET)
IF (eCurrentItem >= FEET_P0_BLACK_SHOES AND eCurrentItem <=FEET_P0_BLACK_SHOES_5)
OR eCurrentItem = FEET_P0_1
OR eCurrentItem = FEET_P0_BED
OR eCurrentItem = FEET_P0_DRESS_LOAFERS
OR (eCurrentItem >= FEET_P0_OXFORDS_0 AND eCurrentItem <=FEET_P0_OXFORDS_15)
OR (eCurrentItem >= FEET_P0_SQ_LOAFERS_0 AND eCurrentItem <=FEET_P0_SQ_LOAFERS_15)
OR (eCurrentItem >= FEET_P0_WINGTIPS_0 AND eCurrentItem <=FEET_P0_WINGTIPS_15)
OR (eCurrentItem >= FEET_P0_LOAFERS_0 AND eCurrentItem <=FEET_P0_LOAFERS_11)
//feet are suitable
ELSE
// feet not suitable
RETURN FALSE
ENDIF
// the player is wearing suitable torso and leg items
RETURN TRUE
ENDFUNC
FUNC INT GET_NUM_OF_HAT_OPTIONS_FOR_SPAWN_OUTFIT(BOOL bIsMale, MP_SPAWN_OUTFIT_TYPE eOutfitType, PED_COMP_NAME_ENUM eCurrentHair = DUMMY_PED_COMP)
IF bIsMale = TRUE
// male
IF eOutfitType = MPSO_CASUAL RETURN 3
ELIF eOutfitType = MPSO_COUCH_POTATO RETURN 3
ELIF eOutfitType = MPSO_ILLEGAL_WORK RETURN 3
ELIF eOutfitType = MPSO_LEGAL_WORK RETURN 2
ELIF eOutfitType = MPSO_PARTYING RETURN 2
ELIF eOutfitType = MPSO_SPORT RETURN 4
ENDIF
ELSE
// female
IF eOutfitType = MPSO_CASUAL
IF (eCurrentHair >= HAIR_FMF_15_0 AND eCurrentHair <= HAIR_FMF_15_6)
CPRINTLN(DEBUG_PED_COMP, "Blocking hat 7 as doesnt go with hair.")
RETURN 2
ELIF (eCurrentHair >= HAIR_FMF_11_0 AND eCurrentHair <= HAIR_FMF_11_6)
OR (eCurrentHair >= HAIR_FMF_4_0 AND eCurrentHair <= HAIR_FMF_4_5)
CPRINTLN(DEBUG_PED_COMP, "blocking hat / hair combos that would clip.")
RETURN 0
ELSE
RETURN 3
ENDIF
ELIF eOutfitType = MPSO_COUCH_POTATO
IF (eCurrentHair >= HAIR_FMF_11_0 AND eCurrentHair <= HAIR_FMF_11_6)
OR (eCurrentHair >= HAIR_FMF_4_0 AND eCurrentHair <= HAIR_FMF_4_5)
CPRINTLN(DEBUG_PED_COMP, "blocking hat / hair combos that would clip.")
RETURN 1
ELSE
RETURN 3
ENDIF
ELIF eOutfitType = MPSO_ILLEGAL_WORK
IF (eCurrentHair >= HAIR_FMF_11_0 AND eCurrentHair <= HAIR_FMF_11_6)
OR (eCurrentHair >= HAIR_FMF_4_0 AND eCurrentHair <= HAIR_FMF_4_5)
CPRINTLN(DEBUG_PED_COMP, "blocking hat / hair combos that would clip.")
RETURN 0
ELIF (eCurrentHair >= HAIR_FMF_6_0 AND eCurrentHair <= HAIR_FMF_6_4)
CPRINTLN(DEBUG_PED_COMP, "blocking hats for illegal spawn outfit with braids haircut.")
RETURN 0
ELSE
RETURN 3
ENDIF
ELIF eOutfitType = MPSO_LEGAL_WORK
IF (eCurrentHair >= HAIR_FMF_11_0 AND eCurrentHair <= HAIR_FMF_11_6)
OR (eCurrentHair >= HAIR_FMF_4_0 AND eCurrentHair <= HAIR_FMF_4_5)
CPRINTLN(DEBUG_PED_COMP, "blocking hat / hair combos that would clip.")
RETURN 2
ELSE
RETURN 3
ENDIF
ELIF eOutfitType = MPSO_PARTYING
IF (eCurrentHair >= HAIR_FMF_11_0 AND eCurrentHair <= HAIR_FMF_11_6)
OR (eCurrentHair >= HAIR_FMF_4_0 AND eCurrentHair <= HAIR_FMF_4_5)
CPRINTLN(DEBUG_PED_COMP, "blocking hat / hair combos that would clip.")
RETURN 0
ELSE
RETURN 2
ENDIF
ELIF eOutfitType = MPSO_SPORT
IF (eCurrentHair >= HAIR_FMF_11_0 AND eCurrentHair <= HAIR_FMF_11_6)
OR (eCurrentHair >= HAIR_FMF_4_0 AND eCurrentHair <= HAIR_FMF_4_5)
CPRINTLN(DEBUG_PED_COMP, "blocking hat / hair combos that would clip.")
RETURN 0
ELSE
RETURN 2
ENDIF
ENDIF
ENDIF
RETURN 0 // should never reach here
ENDFUNC
FUNC PED_COMP_NAME_ENUM GET_HAT_OPTION_FOR_SPAWN_OUTFIT(BOOL bIsMale, MP_SPAWN_OUTFIT_TYPE eOutfitType, INT iOption)
PED_COMP_NAME_ENUM eHeadProp = DUMMY_PED_COMP
IF bIsMale = TRUE
// male
IF eOutfitType = MPSO_CASUAL
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMM_HAT_5_0 BREAK
CASE 1 eHeadProp = PROPS_FMM_HAT_7_1 BREAK
CASE 2 eHeadProp = PROPS_FMM_HAT_7_2 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_COUCH_POTATO
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMM_HAT_3_1 BREAK
CASE 1 eHeadProp = PROPS_FMM_HAT_2_0 BREAK
CASE 2 eHeadProp = PROPS_FMM_HAT_2_1 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_ILLEGAL_WORK
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMM_HAT_4_0 BREAK
CASE 1 eHeadProp = PROPS_FMM_HAT_4_1 BREAK
CASE 2 eHeadProp = PROPS_FMM_HAT_14_1 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_LEGAL_WORK
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMM_HAT_12_0 BREAK
CASE 1 eHeadProp = PROPS_FMM_HAT_12_2 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_PARTYING
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMM_HAT_4_0 BREAK
CASE 1 eHeadProp = PROPS_FMM_HAT_4_1 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_SPORT
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMM_HAT_9_5 BREAK
CASE 1 eHeadProp = PROPS_FMM_HAT_9_7 BREAK
CASE 2 eHeadProp = PROPS_FMM_HAT_10_5 BREAK
CASE 3 eHeadProp = PROPS_FMM_HAT_10_7 BREAK
ENDSWITCH
ENDIF
ELSE
// female
IF eOutfitType = MPSO_CASUAL
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMF_HAT_13_2 BREAK
CASE 1 eHeadProp = PROPS_FMF_HAT_9_4 BREAK
CASE 2 eHeadProp = PROPS_FMF_HAT_7_0 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_COUCH_POTATO
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMF_HAT_10_7 BREAK
CASE 1 eHeadProp = PROPS_FMF_HAT_5_0 BREAK
CASE 2 eHeadProp = PROPS_FMF_HAT_5_1 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_ILLEGAL_WORK
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMF_HAT_4_0 BREAK
CASE 1 eHeadProp = PROPS_FMF_HAT_13_3 BREAK
CASE 2 eHeadProp = PROPS_FMF_HAT_12_0 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_LEGAL_WORK
// if more options are added here- update special case in GET_RANDOM_HAT_FOR_SPAWN_OUTFIT
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMF_HAT_14_0 BREAK
CASE 1 eHeadProp = PROPS_FMF_HAT_14_4 BREAK
CASE 2 eHeadProp = PROPS_FMF_HAT_11_1 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_PARTYING
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMF_HAT_13_1 BREAK
CASE 1 eHeadProp = PROPS_FMF_HAT_13_6 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_SPORT
SWITCH iOption
CASE 0 eHeadProp = PROPS_FMF_HAT_4_0 BREAK
CASE 1 eHeadProp = PROPS_FMF_HAT_9_0 BREAK
ENDSWITCH
ENDIF
ENDIF
IF eHeadProp = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "GET_HAT_OPTION_FOR_SPAWN_OUTFIT returning dummy. bIsMale= ", bIsMale, " eOutfitType = ", eOutfitType, " iOption= ", iOption)
ENDIF
RETURN eHeadProp
ENDFUNC
FUNC PED_COMP_NAME_ENUM GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(BOOL bIsMale, MP_SPAWN_OUTFIT_TYPE eOutfitType, PED_COMP_NAME_ENUM eCurrentHair = DUMMY_PED_COMP)
INT iNumOfOptions = GET_NUM_OF_HAT_OPTIONS_FOR_SPAWN_OUTFIT(bIsMale, eOutfitType, eCurrentHair)
IF iNumOfOptions > 0
INT iRandomItem = GET_RANDOM_INT_IN_RANGE(0, iNumOfOptions)
IF bIsMale = FALSE
AND eOutfitType = MPSO_LEGAL_WORK
// female legal work outfit should have higher probability of using sun hat (option 2- others are berets)
// as there are 3 options, it has 33% chance normally, so upping to 50% sun hat, 25% beret 1, 25% beret 2
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 99)
IF iRandomItem < 25
CPRINTLN(DEBUG_PED_COMP, "Hat option overwritten to beret 1: Female legal.")
iRandomItem = 0
ELIF iRandomItem < 50
CPRINTLN(DEBUG_PED_COMP, "Hat option overwritten to beret 2: Female legal.")
iRandomItem = 1
ELSE
CPRINTLN(DEBUG_PED_COMP, "Hat option overwritten to sunhat: Female legal.")
iRandomItem = 2
ENDIF
ENDIF
RETURN GET_HAT_OPTION_FOR_SPAWN_OUTFIT(bIsMale, eOutfitType, iRandomItem)
ENDIF
RETURN PROPS_HEAD_NONE
ENDFUNC
FUNC INT GET_NUM_OF_GLASSES_OPTIONS_FOR_SPAWN_OUTFIT(BOOL bIsMale, MP_SPAWN_OUTFIT_TYPE eOutfitType, PED_COMP_NAME_ENUM eCurrentHair = DUMMY_PED_COMP)
IF bIsMale = TRUE
// male
IF eOutfitType = MPSO_CASUAL RETURN 5
ELIF eOutfitType = MPSO_COUCH_POTATO RETURN 5
ELIF eOutfitType = MPSO_ILLEGAL_WORK RETURN 6
ELIF eOutfitType = MPSO_LEGAL_WORK RETURN 5
ELIF eOutfitType = MPSO_PARTYING RETURN 6
ELIF eOutfitType = MPSO_SPORT RETURN 6
ENDIF
ELSE
IF (eCurrentHair >= HAIR_FMF_15_0 AND eCurrentHair <= HAIR_FMF_15_6)
// glasses blocked with this hairstyle as they clip
CPRINTLN(DEBUG_PED_COMP, "Blocking glasses as player's hair would clip.")
RETURN 0
ENDIF
// female
IF eOutfitType = MPSO_CASUAL RETURN 5
ELIF eOutfitType = MPSO_COUCH_POTATO RETURN 5
ELIF eOutfitType = MPSO_ILLEGAL_WORK RETURN 6
ELIF eOutfitType = MPSO_LEGAL_WORK RETURN 5
ELIF eOutfitType = MPSO_PARTYING RETURN 5
ELIF eOutfitType = MPSO_SPORT RETURN 7
ENDIF
ENDIF
RETURN 0 // should never reach here
ENDFUNC
FUNC PED_COMP_NAME_ENUM GET_GLASSES_OPTION_FOR_SPAWN_OUTFIT(BOOL bIsMale, MP_SPAWN_OUTFIT_TYPE eOutfitType, INT iOption)
PED_COMP_NAME_ENUM eEyeProp = DUMMY_PED_COMP
IF bIsMale = TRUE
// male
IF eOutfitType = MPSO_CASUAL
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMM_GLASSES_7_0 BREAK
CASE 1 eEyeProp = PROPS_FMM_GLASSES_7_2 BREAK
CASE 2 eEyeProp = PROPS_FMM_GLASSES_8_0 BREAK
CASE 3 eEyeProp = PROPS_FMM_GLASSES_8_2 BREAK
CASE 4 eEyeProp = PROPS_FMM_GLASSES_8_3 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_COUCH_POTATO
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMM_GLASSES_1_1 BREAK
CASE 1 eEyeProp = PROPS_FMM_GLASSES_2_0 BREAK
CASE 2 eEyeProp = PROPS_FMM_GLASSES_2_1 BREAK
CASE 3 eEyeProp = PROPS_FMM_GLASSES_13_0 BREAK
CASE 4 eEyeProp = PROPS_FMM_GLASSES_13_2 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_ILLEGAL_WORK
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMM_GLASSES_2_2 BREAK
CASE 1 eEyeProp = PROPS_FMM_GLASSES_5_0 BREAK
CASE 2 eEyeProp = PROPS_FMM_GLASSES_5_1 BREAK
CASE 3 eEyeProp = PROPS_FMM_GLASSES_9_0 BREAK
CASE 4 eEyeProp = PROPS_FMM_GLASSES_9_1 BREAK
CASE 5 eEyeProp = PROPS_FMM_GLASSES_9_2 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_LEGAL_WORK
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMM_GLASSES_4_1 BREAK
CASE 1 eEyeProp = PROPS_FMM_GLASSES_4_2 BREAK
CASE 2 eEyeProp = PROPS_FMM_GLASSES_5_2 BREAK
CASE 3 eEyeProp = PROPS_FMM_GLASSES_10_0 BREAK
CASE 4 eEyeProp = PROPS_FMM_GLASSES_10_1 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_PARTYING
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMM_GLASSES_3_0 BREAK
CASE 1 eEyeProp = PROPS_FMM_GLASSES_5_2 BREAK
CASE 2 eEyeProp = PROPS_FMM_GLASSES_7_3 BREAK
CASE 3 eEyeProp = PROPS_FMM_GLASSES_12_0 BREAK
CASE 4 eEyeProp = PROPS_FMM_GLASSES_12_1 BREAK
CASE 5 eEyeProp = PROPS_FMM_GLASSES_12_7 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_SPORT
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMM_GLASSES_9_0 BREAK
CASE 1 eEyeProp = PROPS_FMM_GLASSES_9_1 BREAK
CASE 2 eEyeProp = PROPS_FMM_GLASSES_9_2 BREAK
CASE 3 eEyeProp = PROPS_FMM_GLASSES_15_0 BREAK
CASE 4 eEyeProp = PROPS_FMM_GLASSES_15_1 BREAK
CASE 5 eEyeProp = PROPS_FMM_GLASSES_15_2 BREAK
ENDSWITCH
ENDIF
ELSE
// female
IF eOutfitType = MPSO_CASUAL
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMF_GLASSES_1_0 BREAK
CASE 1 eEyeProp = PROPS_FMF_GLASSES_1_1 BREAK
CASE 2 eEyeProp = PROPS_FMF_GLASSES_2_0 BREAK
CASE 3 eEyeProp = PROPS_FMF_GLASSES_4_1 BREAK
CASE 4 eEyeProp = PROPS_FMF_GLASSES_4_5 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_COUCH_POTATO
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMF_GLASSES_0_0 BREAK
CASE 1 eEyeProp = PROPS_FMF_GLASSES_0_1 BREAK
CASE 2 eEyeProp = PROPS_FMF_GLASSES_7_0 BREAK
CASE 3 eEyeProp = PROPS_FMF_GLASSES_7_1 BREAK
CASE 4 eEyeProp = PROPS_FMF_GLASSES_8_0 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_ILLEGAL_WORK
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMF_GLASSES_6_0 BREAK
CASE 1 eEyeProp = PROPS_FMF_GLASSES_10_1 BREAK
CASE 2 eEyeProp = PROPS_FMF_GLASSES_10_5 BREAK
CASE 3 eEyeProp = PROPS_FMF_GLASSES_11_0 BREAK
CASE 4 eEyeProp = PROPS_FMF_GLASSES_11_1 BREAK
CASE 5 eEyeProp = PROPS_FMF_GLASSES_11_2 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_LEGAL_WORK
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMF_GLASSES_1_0 BREAK
CASE 1 eEyeProp = PROPS_FMF_GLASSES_1_1 BREAK
CASE 2 eEyeProp = PROPS_FMF_GLASSES_4_5 BREAK
CASE 3 eEyeProp = PROPS_FMF_GLASSES_14_0 BREAK
CASE 4 eEyeProp = PROPS_FMF_GLASSES_14_1 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_PARTYING
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMF_GLASSES_1_2 BREAK
CASE 1 eEyeProp = PROPS_FMF_GLASSES_3_1 BREAK
CASE 2 eEyeProp = PROPS_FMF_GLASSES_3_2 BREAK
CASE 3 eEyeProp = PROPS_FMF_GLASSES_3_5 BREAK
CASE 4 eEyeProp = PROPS_FMF_GLASSES_6_0 BREAK
ENDSWITCH
ELIF eOutfitType = MPSO_SPORT
SWITCH iOption
CASE 0 eEyeProp = PROPS_FMF_GLASSES_0_0 BREAK
CASE 1 eEyeProp = PROPS_FMF_GLASSES_0_1 BREAK
CASE 2 eEyeProp = PROPS_FMF_GLASSES_0_2 BREAK
CASE 3 eEyeProp = PROPS_FMF_GLASSES_0_3 BREAK
CASE 4 eEyeProp = PROPS_FMF_GLASSES_9_0 BREAK
CASE 5 eEyeProp = PROPS_FMF_GLASSES_9_1 BREAK
CASE 6 eEyeProp = PROPS_FMF_GLASSES_9_2 BREAK
ENDSWITCH
ENDIF
ENDIF
IF eEyeProp = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "GET_GLASSES_OPTION_FOR_SPAWN_OUTFIT returning dummy. bIsMale= ", bIsMale, " eOutfitType = ", eOutfitType, " iOption= ", iOption)
ENDIF
RETURN eEyeProp
ENDFUNC
FUNC PED_COMP_NAME_ENUM GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(BOOL bIsMale, MP_SPAWN_OUTFIT_TYPE eOutfitType, PED_COMP_NAME_ENUM eCurrentHair = DUMMY_PED_COMP)
INT iNumOfOptions = GET_NUM_OF_GLASSES_OPTIONS_FOR_SPAWN_OUTFIT(bIsMale, eOutfitType, eCurrentHair)
IF iNumOfOptions > 0
INT iRandomItem = GET_RANDOM_INT_IN_RANGE(0, iNumOfOptions)
RETURN GET_GLASSES_OPTION_FOR_SPAWN_OUTFIT(bIsMale, eOutfitType, iRandomItem)
ENDIF
RETURN PROPS_EYES_NONE
ENDFUNC
/// PURPOSE:
/// Puts the ped in their MP spawn outfit (X:\depot\gta5\art\peds\Multiplayer\DOCs)
/// PARAMS:
/// mPed - the ped we are using.
/// eOutfitType - casual, couch potato, illegal work etc.
/// bUseCrewTshirt- if true we ignore the uppers from the spawn outfit and use the crew tshirt instead
/// bDoDecals - are we also equipping the tshirt decals for this character?
PROC SETUP_MP_SPAWN_OUTFIT_MALE(PED_INDEX mPed, MP_SPAWN_OUTFIT_TYPE eOutfitType, BOOL bUseCrewTshirt = FALSE, BOOL bJustFillStats = FALSE, BOOL bDoDecals = TRUE, INT iOutfit = -1)
INT iRandomItem
PED_COMP_NAME_ENUM eTorsoItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eSpecialItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eLegsItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eJbibItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eFeetItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eTeefItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eBerdItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eSpecial2Item = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eHeadProp = PROPS_HEAD_NONE
PED_COMP_NAME_ENUM eEyeProp = PROPS_EYES_NONE
BOOL bGiveHat = FALSE
BOOL bGiveGlasses = FALSE
#IF IS_DEBUG_BUILD STRING sOutfitType #ENDIF
IF IS_PED_INJURED(mPed)
AND bJustFillStats = FALSE
EXIT
ENDIF
// if using crew tshirt set the jbib, special, torso and teeth items
IF bUseCrewTshirt = TRUE
eJbibItem = JBIB_FMM_0_0
eTorsoItem = TORSO_FMM_0_0
eSpecialItem = SPECIAL_FMM_15_0
eTeefItem = TEETH_FMM_0_0
ENDIF
// set whether we're going to have accessories
// iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 100)
// IF iRandomItem > 39 //(60% chance)
// // will give a hat
// bGiveHat = TRUE
//
// iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 100)
// IF iRandomItem > 74 // (25% chance)
// bGiveGlasses = TRUE // will give glasses
// ELSE
// eEyeProp = PROPS_EYES_NONE // no glasses
// ENDIF
// ELSE
// // no hat
// eHeadProp = PROPS_HEAD_NONE
//
// iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 100)
// IF iRandomItem > 39 //(60% chance)
// bGiveGlasses = TRUE // will give glasses
// ELSE
// eEyeProp = PROPS_EYES_NONE // no glasses
// ENDIF
// ENDIF
// this gives us the following percentages:
// Hat 60%
// Glasses 39%
// Both 15%
// Neither 16%
// Only Hat 45%
// Only Glasses 24%
CPRINTLN(DEBUG_PED_COMP, "Male spawn outfits: bGiveHat = ", bGiveHat, " bGiveGlasses = ", bGiveGlasses)
SWITCH eOutfitType
CASE MPSO_CASUAL
//--------------- CASUAL-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Casual" #ENDIF
IF bUseCrewTshirt = FALSE
// Torso
eTorsoItem = TORSO_FMM_0_0
// special
eSpecialItem = SPECIAL_FMM_15_0
// Jbib
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 11)
ENDIF
SWITCH iRandomItem
// jbib 0
CASE 0 eJbibItem = JBIB_FMM_0_1 BREAK
CASE 1 eJbibItem = JBIB_FMM_0_2 BREAK
CASE 2 eJbibItem = JBIB_FMM_0_3 BREAK
// jbib 1
CASE 3 eJbibItem = JBIB_FMM_1_0 BREAK
CASE 4 eJbibItem = JBIB_FMM_1_1 BREAK
CASE 5 eJbibItem = JBIB_FMM_1_5 BREAK
CASE 6 eJbibItem = JBIB_FMM_1_12 BREAK
// jbib 9
CASE 7 eJbibItem = JBIB_FMM_9_0 BREAK
CASE 8 eJbibItem = JBIB_FMM_9_1 BREAK
CASE 9 eJbibItem = JBIB_FMM_9_2 BREAK
CASE 10 eJbibItem = JBIB_FMM_9_11 BREAK
ENDSWITCH
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF
SWITCH iRandomItem
// legs 0
CASE 0 eLegsItem = LEGS_FMM_0_0 BREAK
CASE 1 eLegsItem = LEGS_FMM_0_1 BREAK
CASE 2 eLegsItem = LEGS_FMM_0_2 BREAK
CASE 3 eLegsItem = LEGS_FMM_0_3 BREAK
// legs 1
CASE 4 eLegsItem = LEGS_FMM_1_0 BREAK
CASE 5 eLegsItem = LEGS_FMM_1_1 BREAK
CASE 6 eLegsItem = LEGS_FMM_1_2 BREAK
CASE 7 eLegsItem = LEGS_FMM_1_3 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 4)
ENDIF
SWITCH iRandomItem
// feet 0
CASE 0 eFeetItem = FEET_FMM_0_10 BREAK
// feet 1
CASE 1 eFeetItem = FEET_FMM_1_0 BREAK
CASE 2 eFeetItem = FEET_FMM_1_1 BREAK
CASE 3 eFeetItem = FEET_FMM_1_2 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// Others
eBerdItem = BERD_FMM_0_0
eTeefItem = TEETH_FMM_0_0
eSpecial2Item = SPECIAL2_FMM_0_0
BREAK
CASE MPSO_COUCH_POTATO
//--------------- COUCH POTATO-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Couch Potato" #ENDIF
IF bUseCrewTshirt = FALSE
// Jbib
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 7)
ENDIF
SWITCH iRandomItem
// jbib 5
CASE 0
eJbibItem = JBIB_FMM_5_0
BREAK
CASE 1
eJbibItem = JBIB_FMM_5_1
BREAK
CASE 2
eJbibItem = JBIB_FMM_5_2
BREAK
// jbib 3
CASE 3
eJbibItem = JBIB_FMM_3_0
BREAK
CASE 4
eJbibItem = JBIB_FMM_3_1
BREAK
CASE 5
eJbibItem = JBIB_FMM_3_2
BREAK
CASE 6
eJbibItem = JBIB_FMM_3_4
BREAK
ENDSWITCH
// Special
IF (eJbibItem >= JBIB_FMM_5_0 AND eJbibItem <= JBIB_FMM_5_15)
eSpecialItem = SPECIAL_FMM_15_0
ELIF (eJbibItem >= JBIB_FMM_3_0 AND eJbibItem <= JBIB_FMM_3_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF
SWITCH iRandomItem
// special 1
CASE 0 eSpecialItem = SPECIAL_FMM_1_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMM_1_1 BREAK
CASE 2 eSpecialItem = SPECIAL_FMM_1_3 BREAK
CASE 3 eSpecialItem = SPECIAL_FMM_1_5 BREAK
CASE 4 eSpecialItem = SPECIAL_FMM_1_12 BREAK
// special 5
CASE 5 eSpecialItem = SPECIAL_FMM_5_0 BREAK
CASE 6 eSpecialItem = SPECIAL_FMM_5_1 BREAK
CASE 7 eSpecialItem = SPECIAL_FMM_5_2 BREAK
ENDSWITCH
ENDIF
// Torso
IF eSpecialItem = SPECIAL_FMM_15_0
eTorsoItem = TORSO_FMM_5_0
ELIF (eSpecialItem >= SPECIAL_FMM_1_0 AND eSpecialItem <= SPECIAL_FMM_1_15)
eTorsoItem = TORSO_FMM_1_0
ELIF (eSpecialItem >= SPECIAL_FMM_5_0 AND eSpecialItem <= SPECIAL_FMM_5_15)
eTorsoItem = TORSO_FMM_6_0
ENDIF
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 9)
ENDIF
SWITCH iRandomItem
// legs 5
CASE 0 eLegsItem = LEGS_FMM_5_0 BREAK
CASE 1 eLegsItem = LEGS_FMM_5_1 BREAK
CASE 2 eLegsItem = LEGS_FMM_5_2 BREAK
// legs 6
CASE 3 eLegsItem = LEGS_FMM_6_0 BREAK
CASE 4 eLegsItem = LEGS_FMM_6_1 BREAK
CASE 5 eLegsItem = LEGS_FMM_6_2 BREAK
// legs 12
CASE 6 eLegsItem = LEGS_FMM_12_0 BREAK
CASE 7 eLegsItem = LEGS_FMM_12_5 BREAK
CASE 8 eLegsItem = LEGS_FMM_12_7 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 5)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 5)
SWITCH iRandomItem
CASE 0 eFeetItem = FEET_FMM_5_0 BREAK
CASE 1 eFeetItem = FEET_FMM_5_1 BREAK
CASE 2 eFeetItem = FEET_FMM_5_2 BREAK
CASE 3 eFeetItem = FEET_FMM_6_0 BREAK
CASE 4 eFeetItem = FEET_FMM_6_1 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// others
eBerdItem = BERD_FMM_0_0
eTeefItem = TEETH_FMM_0_0
eSpecial2Item = SPECIAL2_FMM_0_0
BREAK
CASE MPSO_ILLEGAL_WORK
//--------------- ILLEGAL WORK-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Illegal work" #ENDIF
IF bUseCrewTshirt = FALSE
// Jbib + Torso
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 8)
SWITCH iRandomItem
// jbib 7
CASE 0 eJbibItem = JBIB_FMM_7_0 BREAK
CASE 1 eJbibItem = JBIB_FMM_7_1 BREAK
CASE 2 eJbibItem = JBIB_FMM_7_2 BREAK
// jbib 0
CASE 3 eJbibItem = JBIB_FMM_0_2 BREAK
// jbib 1
CASE 4 eJbibItem = JBIB_FMM_1_0 BREAK
// jbib 5
CASE 5 eJbibItem = JBIB_FMM_5_0 BREAK
CASE 6 eJbibItem = JBIB_FMM_5_1 BREAK
CASE 7 eJbibItem = JBIB_FMM_5_2 BREAK
ENDSWITCH
// special + torso
IF (eJbibItem >= JBIB_FMM_7_0 AND eJbibItem <= JBIB_FMM_7_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 3)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 3)
SWITCH iRandomItem
CASE 0 eSpecialItem = SPECIAL_FMM_0_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMM_0_1 BREAK
CASE 2 eSpecialItem = SPECIAL_FMM_0_2 BREAK
ENDSWITCH
eTorsoItem = TORSO_FMM_1_0
ELIF (eJbibItem >= JBIB_FMM_0_0 AND eJbibItem <= JBIB_FMM_0_15)
eSpecialItem = SPECIAL_FMM_15_0
eTorsoItem = TORSO_FMM_0_0
ELIF (eJbibItem >= JBIB_FMM_1_0 AND eJbibItem <= JBIB_FMM_1_15)
eSpecialItem = SPECIAL_FMM_15_0
eTorsoItem = TORSO_FMM_0_0
ELIF (eJbibItem >= JBIB_FMM_5_0 AND eJbibItem <= JBIB_FMM_5_15)
eSpecialItem = SPECIAL_FMM_15_0
eTorsoItem = TORSO_FMM_5_0
ENDIF
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 9)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 9)
SWITCH iRandomItem
// legs 7
CASE 0 eLegsItem = LEGS_FMM_7_0 BREAK
CASE 1 eLegsItem = LEGS_FMM_7_1 BREAK
CASE 2 eLegsItem = LEGS_FMM_7_2 BREAK
CASE 3 eLegsItem = LEGS_FMM_7_3 BREAK
CASE 4 eLegsItem = LEGS_FMM_7_4 BREAK
// legs 15
CASE 5 eLegsItem = LEGS_FMM_15_0 BREAK
CASE 6 eLegsItem = LEGS_FMM_15_1 BREAK
CASE 7 eLegsItem = LEGS_FMM_15_2 BREAK
CASE 8 eLegsItem = LEGS_FMM_15_3 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
SWITCH iRandomItem
// feet 7
CASE 0 eFeetItem = FEET_FMM_7_0 BREAK
CASE 1 eFeetItem = FEET_FMM_7_1 BREAK
// feet 8
CASE 2 eFeetItem = FEET_FMM_8_0 BREAK
// feet 12
CASE 3 eFeetItem = FEET_FMM_12_0 BREAK
CASE 4 eFeetItem = FEET_FMM_12_7 BREAK
CASE 5 eFeetItem = FEET_FMM_12_12 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// others
eBerdItem = BERD_FMM_0_0
eTeefItem = TEETH_FMM_0_0
eSpecial2Item = SPECIAL2_FMM_0_0
BREAK
CASE MPSO_LEGAL_WORK
//--------------- LEGAL WORK-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Legal Work" #ENDIF
IF bUseCrewTshirt = FALSE
// Torso, Jbib, Special
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 8)
SWITCH iRandomItem
// jbib 10 (suit- do matching pants)
CASE 0
eJbibItem = JBIB_FMM_10_0
eLegsItem = LEGS_FMM_10_0
BREAK
CASE 1
eJbibItem = JBIB_FMM_10_1
eLegsItem = LEGS_FMM_10_1
BREAK
CASE 2
eJbibItem = JBIB_FMM_10_2
eLegsItem = LEGS_FMM_10_2
BREAK
// jbib 4 (suit- do matching pants)
CASE 3
eJbibItem = JBIB_FMM_4_0
eLegsItem = LEGS_FMM_10_0
BREAK
// jbib 13
CASE 4 eJbibItem = JBIB_FMM_13_0 BREAK
CASE 5 eJbibItem = JBIB_FMM_13_1 BREAK
CASE 6 eJbibItem = JBIB_FMM_13_2 BREAK
CASE 7 eJbibItem = JBIB_FMM_13_3 BREAK
ENDSWITCH
// special + torso
IF (eJbibItem >= JBIB_FMM_10_0 AND eJbibItem <= JBIB_FMM_10_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 5)
ENDIF//GET_RANDOM_INT_IN_RANGE(0, 5)
SWITCH iRandomItem
// special 13
CASE 0 eSpecialItem = SPECIAL_FMM_13_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMM_13_1 BREAK
CASE 2 eSpecialItem = SPECIAL_FMM_13_2 BREAK
// special 4
CASE 3 eSpecialItem = SPECIAL_FMM_4_0 BREAK
CASE 4 eSpecialItem = SPECIAL_FMM_4_1 BREAK
ENDSWITCH
eTorsoItem = TORSO_FMM_1_0
ELIF (eJbibItem >= JBIB_FMM_4_0 AND eJbibItem <= JBIB_FMM_4_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 5)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 5)
SWITCH iRandomItem
// special 13
CASE 0 eSpecialItem = SPECIAL_FMM_13_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMM_13_1 BREAK
CASE 2 eSpecialItem = SPECIAL_FMM_13_2 BREAK
// special 3
CASE 3 eSpecialItem = SPECIAL_FMM_3_0 BREAK
CASE 4 eSpecialItem = SPECIAL_FMM_3_1 BREAK
ENDSWITCH
eTorsoItem = TORSO_FMM_1_0
ELIF (eJbibItem >= JBIB_FMM_13_0 AND eJbibItem <= JBIB_FMM_13_15)
eSpecialItem = SPECIAL_FMM_15_0
eTorsoItem = TORSO_FMM_11_0
ENDIF
// Teeth (Ties)
IF (eJbibItem >= JBIB_FMM_13_0 AND eJbibItem <= JBIB_FMM_13_15)
OR (eSpecialItem >= SPECIAL_FMM_13_0 AND eSpecialItem <= SPECIAL_FMM_13_15)
// use normal / skinny tie
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 3)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 3)
SWITCH iRandomItem
CASE 0 eTeefItem = TEETH_FMM_10_1 BREAK
CASE 1 eTeefItem = TEETH_FMM_10_2 BREAK
CASE 2 eTeefItem = TEETH_FMM_12_2 BREAK
ENDSWITCH
ELIF (eSpecialItem >= SPECIAL_FMM_4_0 AND eSpecialItem <= SPECIAL_FMM_4_15)
// use bow tie
eTeefItem = TEETH_FMM_11_2
bGiveHat = FALSE
eHeadProp = PROPS_HEAD_NONE
CPRINTLN(DEBUG_PED_COMP, "No hats allowed with bow ties.")
ELSE
// no tie
eTeefItem = TEETH_FMM_0_0
ENDIF
ENDIF
// Legs
IF (eJbibItem >= JBIB_FMM_10_0 AND eJbibItem <= JBIB_FMM_10_15)
OR (eJbibItem >= JBIB_FMM_4_0 AND eJbibItem <= JBIB_FMM_4_15)
// wearing a suit jacket- already set the legs item to match suit
ELSE
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
SWITCH iRandomItem
CASE 0 eLegsItem = LEGS_FMM_10_0 BREAK
CASE 1 eLegsItem = LEGS_FMM_10_1 BREAK
CASE 2 eLegsItem = LEGS_FMM_10_2 BREAK
CASE 3 eLegsItem = LEGS_FMM_13_0 BREAK
CASE 4 eLegsItem = LEGS_FMM_13_1 BREAK
CASE 5 eLegsItem = LEGS_FMM_13_2 BREAK
ENDSWITCH
ENDIF
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 5)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 5)
SWITCH iRandomItem
// feet 10
CASE 0 eFeetItem = FEET_FMM_10_0 BREAK
CASE 1 eFeetItem = FEET_FMM_10_12 BREAK
// feet 11
CASE 2 eFeetItem = FEET_FMM_11_12 BREAK
CASE 3 eFeetItem = FEET_FMM_11_14 BREAK
CASE 4 eFeetItem = FEET_FMM_11_15 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// head prop
IF bGiveHat = TRUE
IF (eJbibItem >= JBIB_FMM_10_0 AND eJbibItem <= JBIB_FMM_10_15)
OR (eJbibItem >= JBIB_FMM_4_0 AND eJbibItem <= JBIB_FMM_4_15)
// hats only allowed with full suits
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ELSE
// no hat if not suit- limit allowed hats
eHeadProp = PROPS_HEAD_NONE
ENDIF
ENDIF
// others
eBerdItem = BERD_FMM_0_0
eSpecial2Item = SPECIAL2_FMM_0_0
BREAK
CASE MPSO_PARTYING
//--------------- PARTYING-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Partying" #ENDIF
IF bUseCrewTshirt = FALSE
// Torso, Jbib
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 9)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 9)
SWITCH iRandomItem
// jbib 4
CASE 0
eJbibItem = JBIB_FMM_4_0
eTorsoItem = TORSO_FMM_1_0
BREAK
CASE 1
eJbibItem = JBIB_FMM_4_2
eTorsoItem = TORSO_FMM_1_0
BREAK
CASE 2
eJbibItem = JBIB_FMM_4_3
eTorsoItem = TORSO_FMM_1_0
BREAK
// jbib 12
CASE 3
eJbibItem = JBIB_FMM_12_0
eTorsoItem = TORSO_FMM_1_0
BREAK
CASE 4
eJbibItem = JBIB_FMM_12_1
eTorsoItem = TORSO_FMM_1_0
BREAK
CASE 5
eJbibItem = JBIB_FMM_12_2
eTorsoItem = TORSO_FMM_1_0
BREAK
CASE 6
eJbibItem = JBIB_FMM_12_4
eTorsoItem = TORSO_FMM_1_0
BREAK
// jbib 11
CASE 7
eJbibItem = JBIB_FMM_11_0
eTorsoItem = TORSO_FMM_11_0
BREAK
CASE 8
eJbibItem = JBIB_FMM_11_1
eTorsoItem = TORSO_FMM_11_0
BREAK
ENDSWITCH
// Special
IF (eJbibItem >= JBIB_FMM_4_0 AND eJbibItem <=JBIB_FMM_4_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 10)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 10)
SWITCH iRandomItem
// special 0
CASE 0 eSpecialItem = SPECIAL_FMM_0_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMM_0_1 BREAK
CASE 2 eSpecialItem = SPECIAL_FMM_0_2 BREAK
// special 12
CASE 3 eSpecialItem = SPECIAL_FMM_12_0 BREAK
CASE 4 eSpecialItem = SPECIAL_FMM_12_1 BREAK
CASE 5 eSpecialItem = SPECIAL_FMM_12_2 BREAK
CASE 6 eSpecialItem = SPECIAL_FMM_12_4 BREAK
// special 13
CASE 7 eSpecialItem = SPECIAL_FMM_13_0 BREAK
CASE 8 eSpecialItem = SPECIAL_FMM_13_1 BREAK
CASE 9 eSpecialItem = SPECIAL_FMM_13_2 BREAK
ENDSWITCH
ELIF (eJbibItem >= JBIB_FMM_12_0 AND eJbibItem <=JBIB_FMM_12_15)
eSpecialItem = SPECIAL_FMM_15_0
ELIF (eJbibItem >= JBIB_FMM_11_0 AND eJbibItem <=JBIB_FMM_11_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 5)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 5)
SWITCH iRandomItem
CASE 0 eSpecialItem = SPECIAL_FMM_7_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMM_7_2 BREAK
CASE 2 eSpecialItem = SPECIAL_FMM_7_3 BREAK
CASE 3 eSpecialItem = SPECIAL_FMM_7_4 BREAK
CASE 4 eSpecialItem = SPECIAL_FMM_7_5 BREAK
ENDSWITCH
ENDIF
ENDIF
// Legs
IF (eSpecialItem >= SPECIAL_FMM_13_0 AND eSpecialItem <= SPECIAL_FMM_13_15)
// don't allow jeans with tucked in shirts
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 3)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 3)
ELSE
// other specials work with any of the pants
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 10)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 10)
ENDIF
SWITCH iRandomItem
// legs 10
CASE 0 eLegsItem = LEGS_FMM_10_0 BREAK
// legs 8
CASE 1 eLegsItem = LEGS_FMM_8_0 BREAK
CASE 2 eLegsItem = LEGS_FMM_8_4 BREAK
// legs 4
CASE 3 eLegsItem = LEGS_FMM_4_0 BREAK
CASE 4 eLegsItem = LEGS_FMM_4_1 BREAK
CASE 5 eLegsItem = LEGS_FMM_4_2 BREAK
// legs 0
CASE 6 eLegsItem = LEGS_FMM_0_0 BREAK
CASE 7 eLegsItem = LEGS_FMM_0_1 BREAK
CASE 8 eLegsItem = LEGS_FMM_0_2 BREAK
// legs 1
CASE 9 eLegsItem = LEGS_FMM_1_0 BREAK
ENDSWITCH
// Feet
IF (eLegsItem >= LEGS_FMM_4_0 AND eLegsItem <= LEGS_FMM_4_15)
// can't use some feet with these legs so limit options
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 4)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 4)
ELSE
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF
SWITCH iRandomItem
// feet 4
CASE 0 eFeetItem = FEET_FMM_4_0 BREAK
CASE 1 eFeetItem = FEET_FMM_4_1 BREAK
CASE 2 eFeetItem = FEET_FMM_4_2 BREAK
// feet 0
CASE 3 eFeetItem = FEET_FMM_0_10 BREAK
// feet 15
CASE 4 eFeetItem = FEET_FMM_15_0 BREAK
CASE 5 eFeetItem = FEET_FMM_15_1 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
IF (eEyeProp >= PROPS_FMM_GLASSES_3_0 AND eEyeProp <= PROPS_FMM_GLASSES_3_7)
CPRINTLN(DEBUG_PED_COMP, "Blocking hat for janitor frame glasses- party outfit.")
bGiveHat = FALSE
eHeadProp = PROPS_HEAD_NONE
ENDIF
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// others
eBerdItem = BERD_FMM_0_0
eTeefItem = TEETH_FMM_0_0
eSpecial2Item = SPECIAL2_FMM_0_0
BREAK
CASE MPSO_SPORT
//--------------- SPORT-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Sport" #ENDIF
IF bUseCrewTshirt = FALSE
// Jbib + Torso
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 8)
SWITCH iRandomItem
// jbib 7
CASE 0
eJbibItem = JBIB_FMM_7_2
eTorsoItem = TORSO_FMM_1_0
BREAK
CASE 1
eJbibItem = JBIB_FMM_7_3
eTorsoItem = TORSO_FMM_1_0
BREAK
CASE 2
eJbibItem = JBIB_FMM_7_4
eTorsoItem = TORSO_FMM_1_0
BREAK
// jbib 8
CASE 3
eJbibItem = JBIB_FMM_8_0
eTorsoItem = TORSO_FMM_8_0
BREAK
CASE 4
eJbibItem = JBIB_FMM_8_10
eTorsoItem = TORSO_FMM_8_0
BREAK
CASE 5
eJbibItem = JBIB_FMM_8_14
eTorsoItem = TORSO_FMM_8_0
BREAK
// jbib 0
CASE 6
eJbibItem = JBIB_FMM_0_1
eTorsoItem = TORSO_FMM_0_0
BREAK
CASE 7
eJbibItem = JBIB_FMM_0_8
eTorsoItem = TORSO_FMM_0_0
BREAK
ENDSWITCH
// Special
IF (eJbibItem >= JBIB_FMM_7_0 AND eJbibItem <= JBIB_FMM_7_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 4)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 4)
SWITCH iRandomItem
// special 0
CASE 0 eSpecialItem = SPECIAL_FMM_0_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMM_0_1 BREAK
CASE 2 eSpecialItem = SPECIAL_FMM_0_8 BREAK
// special 1
CASE 3 eSpecialItem = SPECIAL_FMM_1_11 BREAK
ENDSWITCH
ELSE
eSpecialItem = SPECIAL_FMM_15_0
ENDIF
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 8)
SWITCH iRandomItem
// legs 2
CASE 0 eLegsItem = LEGS_FMM_2_11 BREAK
// legs 3
CASE 1 eLegsItem = LEGS_FMM_3_0 BREAK
CASE 2 eLegsItem = LEGS_FMM_3_1 BREAK
CASE 3 eLegsItem = LEGS_FMM_3_4 BREAK
// legs 5
CASE 4 eLegsItem = LEGS_FMM_5_2 BREAK
CASE 5 eLegsItem = LEGS_FMM_5_3 BREAK
CASE 6 eLegsItem = LEGS_FMM_5_4 BREAK
// legs 12
CASE 7 eLegsItem = LEGS_FMM_12_0 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 7)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 7)
SWITCH iRandomItem
// feet 2
CASE 0 eFeetItem = FEET_FMM_2_6 BREAK
CASE 1 eFeetItem = FEET_FMM_2_13 BREAK
// feet 9
CASE 2 eFeetItem = FEET_FMM_9_0 BREAK
CASE 3 eFeetItem = FEET_FMM_9_1 BREAK
CASE 4 eFeetItem = FEET_FMM_9_2 BREAK
CASE 5 eFeetItem = FEET_FMM_9_3 BREAK
CASE 6 eFeetItem = FEET_FMM_9_4 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(TRUE, eOutfitType)
IF (eHeadProp >= PROPS_FMM_HAT_10_0 AND eHeadProp <= PROPS_FMM_HAT_10_7)
// no glasses with this hat
eEyeProp = PROPS_HEAD_NONE
ENDIF
ENDIF
// others
eBerdItem = BERD_FMM_0_0
eTeefItem = TEETH_FMM_0_0
eSpecial2Item = SPECIAL2_FMM_0_0
BREAK
ENDSWITCH
// check for errors
IF eTorsoItem = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy torso")
ENDIF
IF eSpecialItem = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy special")
ENDIF
IF eJbibItem = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy jbib")
ENDIF
IF eLegsItem = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy eLegsItem")
ENDIF
IF eFeetItem = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy eFeetItem")
ENDIF
IF eBerdItem = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy eBerdItem")
ENDIF
IF eTeefItem = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy eTeefItem")
ENDIF
IF eSpecial2Item = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy eSpecial2Item")
ENDIF
IF eHeadProp = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy eHeadProp")
ENDIF
IF eEyeProp = DUMMY_PED_COMP
SCRIPT_ASSERT("MP spawn outfits: Dummy eEyeProp")
ENDIF
// set as an outfit so we don't get the rules messing up the jbib / special / torso
FILL_PED_COMPONENT_OUTFIT_DATA(g_sTempOutfitData, DUMMY_PED_COMP, DUMMY_PED_COMP, eTorsoItem, eLegsItem, eFeetItem, DUMMY_PED_COMP, eSpecialItem, eSpecial2Item, DUMMY_PED_COMP, eBerdItem, eTeefItem, eJbibItem, PROPGROUP_NONE)
// build prop group
FILL_PED_COMPONENT_PROPS_DATA(g_sTempPropGroupData, eHeadProp, eEyeProp)
IF bJustFillStats = FALSE
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_OUTFIT, OUTFIT_DEFAULT, FALSE, -1, TRUE)
ELSE
ENDIF
// update tattoos so we get the torso decals
IF bDoDecals = TRUE
EQUIP_TORSO_DECALS_MP(mPed, COMP_TYPE_JBIB, eJbibItem, FALSE)
UPDATE_TATOOS_MP(mPed)
ENDIF
#IF IS_DEBUG_BUILD sOutfitType = sOutfitType #ENDIF
/*
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_PED_COMP, "-------------MP Spawn Male:", sOutfitType, "------------------")
CPRINTLN(DEBUG_PED_COMP, "eJbibItem = ", eJbibItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_JBIB, eJbibItem)
CPRINTLN(DEBUG_PED_COMP, "eTorsoItem = ", eTorsoItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_TORSO, eTorsoItem)
CPRINTLN(DEBUG_PED_COMP, "eSpecialItem = ", eSpecialItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL, eSpecialItem)
CPRINTLN(DEBUG_PED_COMP, "eLegsItem = ", eLegsItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_LEGS, eLegsItem)
CPRINTLN(DEBUG_PED_COMP, "eFeetItem = ", eFeetItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_FEET, eFeetItem)
CPRINTLN(DEBUG_PED_COMP, "eFeetItem = ", eBerdItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_BERD, eBerdItem)
CPRINTLN(DEBUG_PED_COMP, "eFeetItem = ", eTeefItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_TEETH, eTeefItem)
CPRINTLN(DEBUG_PED_COMP, "eFeetItem = ", eSpecial2Item)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL2, eSpecial2Item)
CPRINTLN(DEBUG_PED_COMP, "-------------MP Spawn Male:", sOutfitType, " End------------------")
PRINT_CURRENT_PED_COMP_INFO_MP(mPed)
#ENDIF
*/
ENDPROC
/// PURPOSE:
/// Puts the ped in their MP spawn outfit. (X:\depot\gta5\art\peds\Multiplayer\DOCs)
/// PARAMS:
/// mPed - the ped we are using.
/// eOutfitType - casual, couch potato, illegal work etc.
/// bUseCrewTshirt- if true we ignore the uppers from the spawn outfit and use the crew tshirt instead
/// bDoDecals - are we also equipping the tshirt decals for this character?
PROC SETUP_MP_SPAWN_OUTFIT_FEMALE(PED_INDEX mPed, MP_SPAWN_OUTFIT_TYPE eOutfitType, BOOL bUseCrewTshirt = FALSE, BOOL bDoDecals = TRUE, INT iOutfit = -1)
INT iRandomItem, iRandomLegs
PED_COMP_NAME_ENUM eTorsoItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eSpecialItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eLegsItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eJbibItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eFeetItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eTeefItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eBerdItem = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eSpecial2Item = DUMMY_PED_COMP
PED_COMP_NAME_ENUM eHeadProp = PROPS_HEAD_NONE
PED_COMP_NAME_ENUM eEyeProp = PROPS_EYES_NONE
PED_COMP_NAME_ENUM eCurrentHair = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_HAIR)
BOOL bGiveHat = FALSE
BOOL bGiveGlasses = FALSE
#IF IS_DEBUG_BUILD STRING sOutfitType #ENDIF
IF IS_PED_INJURED(mPed)
EXIT
ENDIF
// if using crew tshirt set the jbib, special, torso and teeth items
IF bUseCrewTshirt = TRUE
eJbibItem = JBIB_FMF_0_0
eTorsoItem = TORSO_FMF_0_0
eSpecialItem = SPECIAL_FMF_2_0
eTeefItem = TEETH_FMF_0_0
ENDIF
// set whether we're going to have accessories
// iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 100)
// IF iRandomItem > 39 //(60% chance)
// // will give a hat
// bGiveHat = TRUE
//
// iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 100)
// IF iRandomItem > 74 // (25% chance)
// bGiveGlasses = TRUE // will give glasses
// ELSE
// eEyeProp = PROPS_EYES_NONE // no glasses
// ENDIF
// ELSE
// // no hat
// eHeadProp = PROPS_HEAD_NONE
//
// iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 100)
// IF iRandomItem > 39 //(60% chance)
// bGiveGlasses = TRUE // will give glasses
// ELSE
// eEyeProp = PROPS_EYES_NONE // no glasses
// ENDIF
// ENDIF
// this gives us the following percentages:
// Hat 60%
// Glasses 39%
// Both 15%
// Neither 16%
// Only Hat 45%
// Only Glasses 24%
CPRINTLN(DEBUG_PED_COMP, "Female spawn outfits: bGiveHat = ", bGiveHat, " bGiveGlasses = ", bGiveGlasses)
SWITCH eOutfitType
CASE MPSO_CASUAL
//--------------- CASUAL-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Casual" #ENDIF
IF bUseCrewTshirt = FALSE
// Jbib + Torso + Special
// block jbib 9 if player has pigtails- as they clip
IF (eCurrentHair >= HAIR_FMF_3_0 AND eCurrentHair <= HAIR_FMF_3_4)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
CPRINTLN(DEBUG_PED_COMP, "Blocking jbib 9 as player has pigtails")
ELSE
// other hair, allow all jbibs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 10)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 10)
ENDIF
SWITCH iRandomItem
// jbib 0
CASE 0
eJbibItem = JBIB_FMF_0_2
eTorsoItem = TORSO_FMF_0_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
CASE 1
eJbibItem = JBIB_FMF_0_5
eTorsoItem = TORSO_FMF_0_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
CASE 2
eJbibItem = JBIB_FMF_0_7
eTorsoItem = TORSO_FMF_0_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
CASE 3
eJbibItem = JBIB_FMF_0_11
eTorsoItem = TORSO_FMF_0_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
// jbib 14
CASE 4
eJbibItem = JBIB_FMF_14_2
eTorsoItem = TORSO_FMF_14_0
eSpecialItem = SPECIAL_FMF_3_0
BREAK
CASE 5
eJbibItem = JBIB_FMF_14_3
eTorsoItem = TORSO_FMF_14_0
eSpecialItem = SPECIAL_FMF_3_0
BREAK
// jbib 9
CASE 6
eJbibItem = JBIB_FMF_9_0
eTorsoItem = TORSO_FMF_9_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
CASE 7
eJbibItem = JBIB_FMF_9_2
eTorsoItem = TORSO_FMF_9_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
CASE 8
eJbibItem = JBIB_FMF_9_4
eTorsoItem = TORSO_FMF_9_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
CASE 9
eJbibItem = JBIB_FMF_9_8
eTorsoItem = TORSO_FMF_9_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
ENDSWITCH
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
SWITCH iRandomItem
// legs 0
CASE 0 eLegsItem = LEGS_FMF_0_0 BREAK
CASE 1 eLegsItem = LEGS_FMF_0_1 BREAK
CASE 2 eLegsItem = LEGS_FMF_0_2 BREAK
// legs 4
CASE 3 eLegsItem = LEGS_FMF_4_0 BREAK
CASE 4 eLegsItem = LEGS_FMF_4_1 BREAK
CASE 5 eLegsItem = LEGS_FMF_4_2 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
SWITCH iRandomItem
// feet 1
CASE 0 eFeetItem = FEET_FMF_1_0 BREAK
CASE 1 eFeetItem = FEET_FMF_1_1 BREAK
CASE 2 eFeetItem = FEET_FMF_1_2 BREAK
// feet 5
CASE 3 eFeetItem = FEET_FMF_5_0 BREAK
CASE 4 eFeetItem = FEET_FMF_5_1 BREAK
// feet 13
CASE 5 eFeetItem = FEET_FMF_13_0 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// others
eBerdItem = BERD_FMF_0_0
eTeefItem = TEETH_FMF_0_0
eSpecial2Item = SPECIAL2_FMF_0_0
BREAK
CASE MPSO_COUCH_POTATO
//--------------- COUCH POTATO-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Couch Potato" #ENDIF
IF bUseCrewTshirt = FALSE
// Jbib + Torso
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
SWITCH iRandomItem
// jbib 2
CASE 0
eJbibItem = JBIB_FMF_2_0
eTorsoItem = TORSO_FMF_2_0
BREAK
CASE 1
eJbibItem = JBIB_FMF_2_1
eTorsoItem = TORSO_FMF_2_0
BREAK
CASE 2
eJbibItem = JBIB_FMF_2_2
eTorsoItem = TORSO_FMF_2_0
BREAK
CASE 3
eJbibItem = JBIB_FMF_2_12
eTorsoItem = TORSO_FMF_2_0
BREAK
// jbib 3
CASE 4
eJbibItem = JBIB_FMF_3_1
eTorsoItem = TORSO_FMF_3_0
BREAK
CASE 5
eJbibItem = JBIB_FMF_3_4
eTorsoItem = TORSO_FMF_3_0
BREAK
ENDSWITCH
eSpecialItem = SPECIAL_FMF_2_0
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 8)
SWITCH iRandomItem
// legs 2
CASE 0 eLegsItem = LEGS_FMF_2_0 BREAK
CASE 1 eLegsItem = LEGS_FMF_2_1 BREAK
CASE 2 eLegsItem = LEGS_FMF_2_2 BREAK
// legs 3
CASE 3 eLegsItem = LEGS_FMF_3_0 BREAK
CASE 4 eLegsItem = LEGS_FMF_3_2 BREAK
CASE 5 eLegsItem = LEGS_FMF_3_14 BREAK
// legs 4
CASE 6 eLegsItem = LEGS_FMF_4_8 BREAK
CASE 7 eLegsItem = LEGS_FMF_4_9 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 5)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 5)
// Feet 2 can't be worn with legs 3, so only choose from feet 5 for them
IF (eLegsItem >=LEGS_FMF_3_0 AND eLegsItem <= LEGS_FMF_3_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 2)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 2)
ENDIF
SWITCH iRandomItem
CASE 0 eFeetItem = FEET_FMF_5_0 BREAK
CASE 1 eFeetItem = FEET_FMF_5_1 BREAK
CASE 2 eFeetItem = FEET_FMF_2_0 BREAK
CASE 3 eFeetItem = FEET_FMF_2_1 BREAK
CASE 4 eFeetItem = FEET_FMF_2_2 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// others
eBerdItem = BERD_FMF_0_0
eTeefItem = TEETH_FMF_0_0
eSpecial2Item = SPECIAL2_FMF_0_0
BREAK
CASE MPSO_ILLEGAL_WORK
//--------------- ILLEGAL WORK-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Illegal Work" #ENDIF
IF bUseCrewTshirt = FALSE
// Torso + Jbib
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 7)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 7)
SWITCH iRandomItem
// jbib 3
CASE 0
eJbibItem = JBIB_FMF_3_0
eTorsoItem = TORSO_FMF_3_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
CASE 1
eJbibItem = JBIB_FMF_3_1
eTorsoItem = TORSO_FMF_3_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
CASE 2
eJbibItem = JBIB_FMF_3_2
eTorsoItem = TORSO_FMF_3_0
eSpecialItem = SPECIAL_FMF_2_0
BREAK
// jbib 5
CASE 3
eJbibItem = JBIB_FMF_5_0
eTorsoItem = TORSO_FMF_4_0
eSpecialItem = SPECIAL_FMF_3_0
BREAK
CASE 4
eJbibItem = JBIB_FMF_5_1
eTorsoItem = TORSO_FMF_4_0
eSpecialItem = SPECIAL_FMF_3_0
BREAK
CASE 5
eJbibItem = JBIB_FMF_5_7
eTorsoItem = TORSO_FMF_4_0
eSpecialItem = SPECIAL_FMF_3_0
BREAK
// jbib 4
CASE 6
eJbibItem = JBIB_FMF_4_14
eTorsoItem = TORSO_FMF_4_0
eSpecialItem = SPECIAL_FMF_3_0
BREAK
ENDSWITCH
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 9)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 9)
SWITCH iRandomItem
// legs 3
CASE 0 eLegsItem = LEGS_FMF_3_0 BREAK
CASE 1 eLegsItem = LEGS_FMF_3_2 BREAK
CASE 2 eLegsItem = LEGS_FMF_3_14 BREAK
// legs 1
CASE 3 eLegsItem = LEGS_FMF_1_0 BREAK
CASE 4 eLegsItem = LEGS_FMF_1_2 BREAK
CASE 5 eLegsItem = LEGS_FMF_1_6 BREAK
// legs 11
CASE 6 eLegsItem = LEGS_FMF_11_0 BREAK
CASE 7 eLegsItem = LEGS_FMF_11_2 BREAK
CASE 8 eLegsItem = LEGS_FMF_11_6 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
SWITCH iRandomItem
// feet 3
CASE 0 eFeetItem = FEET_FMF_3_0 BREAK
CASE 1 eFeetItem = FEET_FMF_3_1 BREAK
CASE 2 eFeetItem = FEET_FMF_3_3 BREAK
// feet 4
CASE 3 eFeetItem = FEET_FMF_4_0 BREAK
CASE 4 eFeetItem = FEET_FMF_4_1 BREAK
CASE 5 eFeetItem = FEET_FMF_4_2 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// others
eBerdItem = BERD_FMF_0_0
eTeefItem = TEETH_FMF_0_0
eSpecial2Item = SPECIAL2_FMF_0_0
BREAK
CASE MPSO_LEGAL_WORK
//--------------- LEGAL WORK-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Legal Work" #ENDIF
IF bUseCrewTshirt = FALSE
// Jbib, Torso + Legs
// block jbib 9 if player has pigtails- as they clip
IF (eCurrentHair >= HAIR_FMF_3_0 AND eCurrentHair <= HAIR_FMF_3_4)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 7)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 7)
CPRINTLN(DEBUG_PED_COMP, "Blocking jbib 9 as player has pigtails")
ELSE
// other hair, allow all jbibs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 3)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 3)
SWITCH iRandomItem
// jbib 6
CASE 0
eJbibItem = JBIB_FMF_6_0
eTorsoItem = TORSO_FMF_5_0
IF iRandomLegs = 0 eLegsItem = LEGS_FMF_6_0
ELIF iRandomLegs = 1 eLegsItem = LEGS_FMF_7_0
ELSE eLegsItem = LEGS_FMF_8_0
ENDIF
BREAK
CASE 1
eJbibItem = JBIB_FMF_6_1
eTorsoItem = TORSO_FMF_5_0
IF iRandomLegs = 0 eLegsItem = LEGS_FMF_6_1
ELIF iRandomLegs = 1 eLegsItem = LEGS_FMF_7_1
ELSE eLegsItem = LEGS_FMF_8_1
ENDIF
BREAK
CASE 2
eJbibItem = JBIB_FMF_6_2
eTorsoItem = TORSO_FMF_5_0
IF iRandomLegs = 0 eLegsItem = LEGS_FMF_6_2
ELIF iRandomLegs = 1 eLegsItem = LEGS_FMF_7_2
ELSE eLegsItem = LEGS_FMF_8_2
ENDIF
BREAK
CASE 3
eJbibItem = JBIB_FMF_6_4
eTorsoItem = TORSO_FMF_5_0
IF iRandomLegs = 0 eLegsItem = LEGS_FMF_6_0
ELIF iRandomLegs = 1 eLegsItem = LEGS_FMF_7_0
ELSE eLegsItem = LEGS_FMF_8_0
ENDIF
BREAK
// jbib 7
CASE 4
eJbibItem = JBIB_FMF_7_0
eTorsoItem = TORSO_FMF_6_0
IF iRandomLegs = 0 eLegsItem = LEGS_FMF_6_0
ELIF iRandomLegs = 1 eLegsItem = LEGS_FMF_7_0
ELSE eLegsItem = LEGS_FMF_8_0
ENDIF
BREAK
CASE 5
eJbibItem = JBIB_FMF_7_1
eTorsoItem = TORSO_FMF_6_0
IF iRandomLegs = 0 eLegsItem = LEGS_FMF_6_2
ELIF iRandomLegs = 1 eLegsItem = LEGS_FMF_7_2
ELSE eLegsItem = LEGS_FMF_8_2
ENDIF
BREAK
CASE 6
eJbibItem = JBIB_FMF_7_8
eTorsoItem = TORSO_FMF_6_0
IF iRandomLegs = 0 eLegsItem = LEGS_FMF_6_1
ELIF iRandomLegs = 1 eLegsItem = LEGS_FMF_7_1
ELSE eLegsItem = LEGS_FMF_8_1
ENDIF
BREAK
// jbib 9
CASE 7
eJbibItem = JBIB_FMF_9_1
eTorsoItem = TORSO_FMF_9_0
// can use any of the legs with this top
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 9)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 9)
SWITCH iRandomItem
CASE 0 eLegsItem = LEGS_FMF_6_0 BREAK
CASE 1 eLegsItem = LEGS_FMF_6_1 BREAK
CASE 2 eLegsItem = LEGS_FMF_6_2 BREAK
CASE 3 eLegsItem = LEGS_FMF_7_0 BREAK
CASE 4 eLegsItem = LEGS_FMF_7_1 BREAK
CASE 5 eLegsItem = LEGS_FMF_7_2 BREAK
CASE 6 eLegsItem = LEGS_FMF_8_0 BREAK
CASE 7 eLegsItem = LEGS_FMF_8_1 BREAK
CASE 8 eLegsItem = LEGS_FMF_8_2 BREAK
ENDSWITCH
BREAK
ENDSWITCH
// Special
IF (eJbibItem >= JBIB_FMF_6_0 AND eJbibItem <= JBIB_FMF_6_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 4)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 4)
SWITCH iRandomItem
// special 0
CASE 0 eSpecialItem = SPECIAL_FMF_0_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMF_0_10 BREAK
CASE 2 eSpecialItem = SPECIAL_FMF_0_11 BREAK
// special 13
CASE 3 eSpecialItem = SPECIAL_FMF_13_0 BREAK
ENDSWITCH
ELIF (eJbibItem >= JBIB_FMF_7_0 AND eJbibItem <= JBIB_FMF_7_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 5)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 5)
SWITCH iRandomItem
// special 0
CASE 0 eSpecialItem = SPECIAL_FMF_0_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMF_0_10 BREAK
CASE 2 eSpecialItem = SPECIAL_FMF_0_11 BREAK
// special 13
CASE 3 eSpecialItem = SPECIAL_FMF_13_0 BREAK
// special 12
CASE 4 eSpecialItem = SPECIAL_FMF_12_9 BREAK
ENDSWITCH
ELIF (eJbibItem >= JBIB_FMF_9_0 AND eJbibItem <= JBIB_FMF_9_15)
eSpecialItem = SPECIAL_FMF_2_0
ENDIF
ELSE
// using crew tshirt, pick random legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 9)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 9)
SWITCH iRandomItem
CASE 0 eLegsItem = LEGS_FMF_6_0 BREAK
CASE 1 eLegsItem = LEGS_FMF_6_1 BREAK
CASE 2 eLegsItem = LEGS_FMF_6_2 BREAK
CASE 3 eLegsItem = LEGS_FMF_7_0 BREAK
CASE 4 eLegsItem = LEGS_FMF_7_1 BREAK
CASE 5 eLegsItem = LEGS_FMF_7_2 BREAK
CASE 6 eLegsItem = LEGS_FMF_8_0 BREAK
CASE 7 eLegsItem = LEGS_FMF_8_1 BREAK
CASE 8 eLegsItem = LEGS_FMF_8_2 BREAK
ENDSWITCH
ENDIF
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 5)
ENDIF//GET_RANDOM_INT_IN_RANGE(0, 5)
SWITCH iRandomItem
// feet 6
CASE 0 eFeetItem = FEET_FMF_6_0 BREAK
// feet 0
CASE 1 eFeetItem = FEET_FMF_0_0 BREAK
CASE 2 eFeetItem = FEET_FMF_0_1 BREAK
CASE 3 eFeetItem = FEET_FMF_0_2 BREAK
CASE 4 eFeetItem = FEET_FMF_0_3 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// others
eBerdItem = BERD_FMF_0_0
eTeefItem = TEETH_FMF_0_0
eSpecial2Item = SPECIAL2_FMF_0_0
BREAK
CASE MPSO_PARTYING
//--------------- PARTYING-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Partying" #ENDIF
IF bUseCrewTshirt = FALSE
// Torso + Jbib
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 10)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 10)
SWITCH iRandomItem
//jbib 8
CASE 0
eJbibItem = JBIB_FMF_8_0
eTorsoItem = TORSO_FMF_5_0
BREAK
CASE 1
eJbibItem = JBIB_FMF_8_1
eTorsoItem = TORSO_FMF_5_0
BREAK
CASE 2
eJbibItem = JBIB_FMF_8_2
eTorsoItem = TORSO_FMF_5_0
BREAK
// jbib 1
CASE 3
eJbibItem = JBIB_FMF_1_0
eTorsoItem = TORSO_FMF_5_0
BREAK
CASE 4
eJbibItem = JBIB_FMF_1_2
eTorsoItem = TORSO_FMF_5_0
BREAK
CASE 5
eJbibItem = JBIB_FMF_1_14
eTorsoItem = TORSO_FMF_5_0
BREAK
// jbib 4
CASE 6
eJbibItem = JBIB_FMF_4_14
eTorsoItem = TORSO_FMF_4_0
BREAK
// jbib 5
CASE 7
eJbibItem = JBIB_FMF_5_0
eTorsoItem = TORSO_FMF_4_0
BREAK
CASE 8
eJbibItem = JBIB_FMF_5_1
eTorsoItem = TORSO_FMF_4_0
BREAK
CASE 9
eJbibItem = JBIB_FMF_5_7
eTorsoItem = TORSO_FMF_4_0
BREAK
ENDSWITCH
// Special
IF (eJbibItem >= JBIB_FMF_8_0 AND eJbibItem <= JBIB_FMF_8_15)
OR (eJbibItem >= JBIB_FMF_1_0 AND eJbibItem <= JBIB_FMF_1_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 7)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 7)
SWITCH iRandomItem
// special 0
CASE 0 eSpecialItem = SPECIAL_FMF_0_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMF_0_2 BREAK
CASE 2 eSpecialItem = SPECIAL_FMF_0_11 BREAK
// special 5
CASE 3 eSpecialItem = SPECIAL_FMF_5_0 BREAK
CASE 4 eSpecialItem = SPECIAL_FMF_5_1 BREAK
CASE 5 eSpecialItem = SPECIAL_FMF_5_7 BREAK
// special 13
CASE 6 eSpecialItem = SPECIAL_FMF_13_0 BREAK
ENDSWITCH
ELIF (eJbibItem >= JBIB_FMF_4_0 AND eJbibItem <= JBIB_FMF_4_15)
OR (eJbibItem >= JBIB_FMF_5_0 AND eJbibItem <= JBIB_FMF_5_15)
eSpecialItem = SPECIAL_FMF_3_0
ENDIF
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
SWITCH iRandomItem
// legs 8
CASE 0 eLegsItem = LEGS_FMF_8_0 BREAK
CASE 1 eLegsItem = LEGS_FMF_8_1 BREAK
CASE 2 eLegsItem = LEGS_FMF_8_3 BREAK
// legs 9
CASE 3 eLegsItem = LEGS_FMF_9_0 BREAK
CASE 4 eLegsItem = LEGS_FMF_9_1 BREAK
CASE 5 eLegsItem = LEGS_FMF_9_2 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 7)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 7)
SWITCH iRandomItem
// feet 8
CASE 0 eFeetItem = FEET_FMF_8_0 BREAK
CASE 1 eFeetItem = FEET_FMF_8_1 BREAK
CASE 2 eFeetItem = FEET_FMF_8_3 BREAK
// feet 0
CASE 3 eFeetItem = FEET_FMF_0_0 BREAK
CASE 4 eFeetItem = FEET_FMF_0_1 BREAK
// feet 14
CASE 5 eFeetItem = FEET_FMF_14_0 BREAK
// feet 15
CASE 6 eFeetItem = FEET_FMF_15_0 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// others
eBerdItem = BERD_FMF_0_0
eTeefItem = TEETH_FMF_0_0
eSpecial2Item = SPECIAL2_FMF_0_0
BREAK
CASE MPSO_SPORT
//--------------- SPORT-------------------
#IF IS_DEBUG_BUILD sOutfitType = "Sport" #ENDIF
IF bUseCrewTshirt = FALSE
// Torso + Jbib + Special
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 8)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 8)
SWITCH iRandomItem
// jbib 10
CASE 0
eJbibItem = JBIB_FMF_10_0
eTorsoItem = TORSO_FMF_6_0
BREAK
CASE 1
eJbibItem = JBIB_FMF_10_1
eTorsoItem = TORSO_FMF_6_0
BREAK
CASE 2
eJbibItem = JBIB_FMF_10_2
eTorsoItem = TORSO_FMF_6_0
BREAK
CASE 3
eJbibItem = JBIB_FMF_10_11
eTorsoItem = TORSO_FMF_6_0
BREAK
// jbib 11
CASE 4
eJbibItem = JBIB_FMF_11_0
eTorsoItem = TORSO_FMF_11_0
BREAK
CASE 5
eJbibItem = JBIB_FMF_11_1
eTorsoItem = TORSO_FMF_11_0
BREAK
CASE 6
eJbibItem = JBIB_FMF_11_2
eTorsoItem = TORSO_FMF_11_0
BREAK
// jbib 14
CASE 7
eJbibItem = JBIB_FMF_14_5
eTorsoItem = TORSO_FMF_14_0
BREAK
ENDSWITCH
// Special
IF (eJbibItem >= JBIB_FMF_10_0 AND eJbibItem <= JBIB_FMF_10_15)
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 7)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 7)
SWITCH iRandomItem
// special 1
CASE 0 eSpecialItem = SPECIAL_FMF_1_0 BREAK
CASE 1 eSpecialItem = SPECIAL_FMF_1_2 BREAK
CASE 2 eSpecialItem = SPECIAL_FMF_1_5 BREAK
CASE 3 eSpecialItem = SPECIAL_FMF_1_11 BREAK
// special 11
CASE 4 eSpecialItem = SPECIAL_FMF_11_0 BREAK
CASE 5 eSpecialItem = SPECIAL_FMF_11_1 BREAK
CASE 6 eSpecialItem = SPECIAL_FMF_11_2 BREAK
ENDSWITCH
ELIF (eJbibItem >= JBIB_FMF_11_0 AND eJbibItem <= JBIB_FMF_11_15)
eSpecialItem = SPECIAL_FMF_2_0
ELIF (eJbibItem >= JBIB_FMF_14_0 AND eJbibItem <= JBIB_FMF_14_15)
eSpecialItem = SPECIAL_FMF_3_0
ENDIF
ENDIF
// Legs
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 6)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 6)
SWITCH iRandomItem
// legs 10
CASE 0 eLegsItem = LEGS_FMF_10_0 BREAK
CASE 1 eLegsItem = LEGS_FMF_10_1 BREAK
CASE 2 eLegsItem = LEGS_FMF_10_2 BREAK
// legs 2
CASE 3 eLegsItem = LEGS_FMF_2_0 BREAK
CASE 4 eLegsItem = LEGS_FMF_2_1 BREAK
CASE 5 eLegsItem = LEGS_FMF_2_2 BREAK
ENDSWITCH
// Feet
IF iOutfit != -1
iRandomItem = iOutfit
ELSE
iRandomItem = GET_RANDOM_INT_IN_RANGE(0, 7)
ENDIF //GET_RANDOM_INT_IN_RANGE(0, 7)
SWITCH iRandomItem
// feet 10
CASE 0 eFeetItem = FEET_FMF_10_0 BREAK
CASE 1 eFeetItem = FEET_FMF_10_1 BREAK
CASE 2 eFeetItem = FEET_FMF_10_2 BREAK
// feet 11
CASE 3 eFeetItem = FEET_FMF_11_0 BREAK
// feet 4
CASE 4 eFeetItem = FEET_FMF_4_0 BREAK
CASE 5 eFeetItem = FEET_FMF_4_1 BREAK
CASE 6 eFeetItem = FEET_FMF_4_2 BREAK
ENDSWITCH
// eye prop
IF bGiveGlasses = TRUE
eEyeProp = GET_RANDOM_GLASSES_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// head prop
IF bGiveHat = TRUE
eHeadProp = GET_RANDOM_HAT_FOR_SPAWN_OUTFIT(FALSE, eOutfitType, eCurrentHair)
ENDIF
// others
eBerdItem = BERD_FMF_0_0
eTeefItem = TEETH_FMF_0_0
eSpecial2Item = SPECIAL2_FMF_0_0
BREAK
ENDSWITCH
// check for errors
IF eTorsoItem = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy torso")
SCRIPT_ASSERT("MP spawn outfits: Dummy torso")
ENDIF
IF eSpecialItem = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy special")
SCRIPT_ASSERT("MP spawn outfits: Dummy special")
ENDIF
IF eJbibItem = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy jbib")
SCRIPT_ASSERT("MP spawn outfits: Dummy jbib")
ENDIF
IF eLegsItem = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy eLegsItem")
SCRIPT_ASSERT("MP spawn outfits: Dummy eLegsItem")
ENDIF
IF eFeetItem = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy eFeetItem")
SCRIPT_ASSERT("MP spawn outfits: Dummy eFeetItem")
ENDIF
IF eBerdItem = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy eBerdItem")
SCRIPT_ASSERT("MP spawn outfits: Dummy eBerdItem")
ENDIF
IF eTeefItem = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy eTeefItem")
SCRIPT_ASSERT("MP spawn outfits: Dummy eTeefItem")
ENDIF
IF eSpecial2Item = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy eSpecial2Item")
SCRIPT_ASSERT("MP spawn outfits: Dummy eSpecial2Item")
ENDIF
IF eHeadProp = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy eHeadProp")
SCRIPT_ASSERT("MP spawn outfits: Dummy eHeadProp")
ENDIF
IF eEyeProp = DUMMY_PED_COMP
CPRINTLN(DEBUG_PED_COMP, "MP spawn outfits: Dummy eEyeProp")
SCRIPT_ASSERT("MP spawn outfits: Dummy eEyeProp")
ENDIF
// set as an outfit so we don't get the rules messing up the jbib / special / torso
FILL_PED_COMPONENT_OUTFIT_DATA(g_sTempOutfitData, DUMMY_PED_COMP, DUMMY_PED_COMP, eTorsoItem, eLegsItem, eFeetItem, DUMMY_PED_COMP, eSpecialItem, eSpecial2Item, DUMMY_PED_COMP, eBerdItem, eTeefItem, eJbibItem, PROPGROUP_NONE)
// build prop group
FILL_PED_COMPONENT_PROPS_DATA(g_sTempPropGroupData, eHeadProp, eEyeProp)
SET_PED_COMP_ITEM_CURRENT_MP(mPed, COMP_TYPE_OUTFIT, OUTFIT_DEFAULT, FALSE, -1, TRUE)
// update tattoos so we get the torso decals
IF bDoDecals = TRUE
EQUIP_TORSO_DECALS_MP(mPed, COMP_TYPE_JBIB, eJbibItem, FALSE)
UPDATE_TATOOS_MP(mPed)
ENDIF
#IF IS_DEBUG_BUILD
sOutfitType = sOutfitType
CPRINTLN(DEBUG_PED_COMP, "MP Spawn Female:", sOutfitType)
#ENDIF
/*
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_PED_COMP, "-------------MP Spawn Female:", sOutfitType, "------------------")
CPRINTLN(DEBUG_PED_COMP, "eJbibItem = ", eJbibItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_JBIB, eJbibItem)
CPRINTLN(DEBUG_PED_COMP, "eTorsoItem = ", eTorsoItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_TORSO, eTorsoItem)
CPRINTLN(DEBUG_PED_COMP, "eSpecialItem = ", eSpecialItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL, eSpecialItem)
CPRINTLN(DEBUG_PED_COMP, "eLegsItem = ", eLegsItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_LEGS, eLegsItem)
CPRINTLN(DEBUG_PED_COMP, "eFeetItem = ", eFeetItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_FEET, eFeetItem)
CPRINTLN(DEBUG_PED_COMP, "eFeetItem = ", eBerdItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_BERD, eBerdItem)
CPRINTLN(DEBUG_PED_COMP, "eFeetItem = ", eTeefItem)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_TEETH, eTeefItem)
CPRINTLN(DEBUG_PED_COMP, "eFeetItem = ", eSpecial2Item)
PRINT_PED_COMP_ITEM_NAME_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL2, eSpecial2Item)
CPRINTLN(DEBUG_PED_COMP, "-------------MP Spawn Female:", sOutfitType, " End------------------")
PRINT_CURRENT_PED_COMP_INFO_MP(mPed)
#ENDIF
*/
ENDPROC
/// PURPOSE:
/// Checks if this ped is wearing high heels
/// PARAMS:
/// mPed - the ped we are checking
/// RETURNS:
/// TRUE if the ped is wearing high heels, FALSE otherwise
FUNC BOOL IS_PED_WEARING_HIGH_HEELS(PED_INDEX mPed)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(mPed)
PED_COMP_NAME_ENUM eItem
INT iDLCFeetNameHash = -1
INT iDLCFeetCheck = -1
IF ePedModel = MP_F_FREEMODE_01
eItem = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(mPed, COMP_TYPE_FEET)
IF eItem >= FEET_FMF_DLC
iDLCFeetNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(ePedModel, eItem, COMP_TYPE_FEET, 4)
iDLCFeetCheck = GET_DLC_DRAW_TAG(iDLCFeetNameHash)
ENDIF
IF (eItem >= FEET_FMF_0_0 AND eItem <= FEET_FMF_0_15)
OR (eItem >= FEET_FMF_6_0 AND eItem <= FEET_FMF_6_15)
OR (eItem >= FEET_FMF_7_0 AND eItem <= FEET_FMF_7_15)
OR (eItem >= FEET_FMF_8_0 AND eItem <= FEET_FMF_8_15)
OR (eItem >= FEET_FMF_12_0 AND eItem <= FEET_FMF_12_15)
OR (eItem >= FEET_FMF_14_0 AND eItem <= FEET_FMF_14_15)
OR (iDLCFeetCheck = 0)
OR (iDLCFeetCheck = 6)
OR (iDLCFeetCheck = 7)
OR (iDLCFeetCheck = 8)
OR (iDLCFeetCheck = 12)
OR (iDLCFeetCheck = 14)
#IF USE_TU_CHANGES
OR (iDLCFeetNameHash != -1 AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCFeetNameHash, DLC_RESTRICTION_TAG_HIGH_HEELS, ENUM_TO_INT(SHOP_PED_COMPONENT)))
#ENDIF
RETURN TRUE // ped is wearing high heels
ENDIF
ENDIF
RETURN FALSE // not wearing high heels
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_UPPERS(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(JBIB_FMM_15_0)+1
ELSE
RETURN ENUM_TO_INT(JBIB_FMF_15_15)+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_LOWERS(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(LEGS_FMM_15_15)+1
ELSE
RETURN ENUM_TO_INT(LEGS_FMF_15_15)+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_SHOES(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(FEET_FMM_15_15)+1
ELSE
RETURN ENUM_TO_INT(FEET_FMF_15_15)+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_HAIRDOS(BOOL bMale)
IF bMale //TODO Set this up to return correct values when we get command to check if the dlc is installed
RETURN ((ENUM_TO_INT(HAIR_FMM_15_5)+1) - 5) - 10 //5 are only used in the character creator & aren't in the shop, 10 are DLC.
ELSE
RETURN ((ENUM_TO_INT(HAIR_FMF_15_6)+1) - 5) - 11 //5 are only used in the character creator & aren't in the shop, 11 are DLC.
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_MAKEUP(BOOL bMale) //TODO Set this up when we get command to check if sports fanatic dlc is installed
IF bMale
RETURN 32
ELSE
RETURN 32
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_MASKS(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(BERD_FMM_7_3)+1
ELSE
RETURN ENUM_TO_INT(BERD_FMF_7_3)+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_HATS(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(PROPS_FMM_HAT_15_7)-(ENUM_TO_INT(PROPS_FMM_HAT_2_0))+1
ELSE
RETURN ENUM_TO_INT(PROPS_FMF_HAT_15_7)-(ENUM_TO_INT(PROPS_FMF_HAT_2_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_GLASSES(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(PROPS_FMM_GLASSES_15_10)-(ENUM_TO_INT(PROPS_FMM_GLASSES_0_0))+1
ELSE
RETURN ENUM_TO_INT(PROPS_FMF_GLASSES_15_7)-(ENUM_TO_INT(PROPS_FMF_GLASSES_0_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_HELMETS(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(PROPS_FMM_HELMET_18_7)-(ENUM_TO_INT(PROPS_FMM_HELMET_16_0))+1
ELSE
RETURN ENUM_TO_INT(PROPS_FMF_HELMET_18_7)-(ENUM_TO_INT(PROPS_FMF_HELMET_16_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_EARDEFENDERS(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(PROPS_FMM_EARDEFENDERS_0_7)-(ENUM_TO_INT(PROPS_FMM_EARDEFENDERS_0_0))+1
ELSE
RETURN ENUM_TO_INT(PROPS_FMF_EARDEFENDERS_0_7)-(ENUM_TO_INT(PROPS_FMF_EARDEFENDERS_0_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_LEFT_WRIST(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(PROPS_FMM_WATCH_1_2)-(ENUM_TO_INT(PROPS_FMM_WATCH_0_0))+1
ELSE
RETURN ENUM_TO_INT(PROPS_FMF_WATCH_1_2)-(ENUM_TO_INT(PROPS_FMF_WATCH_0_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_CHAINS(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(TEETH_FMM_2_2)-(ENUM_TO_INT(TEETH_FMM_1_0))+1
ELSE
RETURN ENUM_TO_INT(TEETH_FMF_7_5)-(ENUM_TO_INT(TEETH_FMF_6_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_EARRINGS(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(TEETH_FMM_3_2)-(ENUM_TO_INT(TEETH_FMM_3_0))+1
ELSE
RETURN ENUM_TO_INT(TEETH_FMF_2_5)-(ENUM_TO_INT(TEETH_FMF_1_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_SCARVES(BOOL bMale)
IF bMale
RETURN ENUM_TO_INT(TEETH_FMM_6_5)-(ENUM_TO_INT(TEETH_FMM_5_0))+1
ELSE
RETURN ENUM_TO_INT(TEETH_FMF_9_5)-(ENUM_TO_INT(TEETH_FMF_9_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_RIGHT_WRIST(BOOL bMale)
IF bMale
RETURN 1 //ENUM_TO_INT(CUFF_FMM_3_2)-(ENUM_TO_INT(CUFF_FMM_3_0))+1
ELSE
RETURN 1 //ENUM_TO_INT(CUFF_FMF_2_5)-(ENUM_TO_INT(CUFF_FMF_1_0))+1
ENDIF
ENDFUNC
FUNC INT GET_NUMBER_OF_FREEMODE_GLOVES(BOOL bMale)
IF bMale
RETURN 1 //ENUM_TO_INT(GLOVE_FMM_3_2)-(ENUM_TO_INT(GLOVE_FMM_3_0))+1
ELSE
RETURN 1 //ENUM_TO_INT(GLOVE_FMF_2_5)-(ENUM_TO_INT(GLOVE_FMF_1_0))+1
ENDIF
ENDFUNC
#IF IS_DEBUG_BUILD
PROC PRINT_INFO_FOR_CHAR(STRING sChar, PED_COMP_NAME_ENUM eNumOfItems, INT &iMaxItems)
INT iNumOfItems = ENUM_TO_INT(eNumOfItems)
IF eNumOfItems = DUMMY_PED_COMP
iNumOfItems = 0
ENDIF
CPRINTLN(DEBUG_PED_COMP, sChar, iNumOfItems)
IF iNumOfItems > iMaxItems
iMaxItems = iNumOfItems
ENDIF
ENDPROC
PROC PRINT_COMP_TYPE_HEADER(STRING sCompType, INT &iMaxItems)
CPRINTLN(DEBUG_PED_COMP, "")
CPRINTLN(DEBUG_PED_COMP, sCompType)
iMaxItems = 0
ENDPROC
PROC PRINT_COMP_TYPE_FOOTER(STRING sCompType, INT iMaxItems, INT &iTotalBitsets)
INT iBitsetsRequired = 0
iBitsetsRequired = (iMaxItems / 32) + 1
CPRINTLN(DEBUG_PED_COMP, sCompType, "iMaxItems= ", iMaxItems, "iBitsetsRequired= ", iBitsetsRequired)
CPRINTLN(DEBUG_PED_COMP, "")
iTotalBitsets = iTotalBitsets + iBitsetsRequired
ENDPROC
/// PURPOSE:
/// Runs through each ped comp type and checks the max number of items a character has
/// Then prints the number of bitsets we'd need to handle these items
PROC PRINT_PED_COMP_BITSETS_REQUIRED()
INT iMaxItems = 0
INT iTotalBitsets = 0
CPRINTLN(DEBUG_PED_COMP, "---------------PRINT_PED_COMP_BITSETS_REQUIRED- START ---------------------------")
// head
PRINT_COMP_TYPE_HEADER("COMP_TYPE_HEAD", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", HEAD_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", HEAD_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", HEAD_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", DUMMY_PED_COMP, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", DUMMY_PED_COMP, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_HEAD", iMaxItems, iTotalBitsets)
// beard
PRINT_COMP_TYPE_HEADER("COMP_TYPE_BERD", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", BERD_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", BERD_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", BERD_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", BERD_FMM_7_3, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", BERD_FMF_7_3, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_BERD", iMaxItems, iTotalBitsets)
// hair
PRINT_COMP_TYPE_HEADER("COMP_TYPE_HAIR", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", HAIR_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", HAIR_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", HAIR_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", HAIR_FMM_15_4, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", HAIR_FMF_15_5, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_HAIR", iMaxItems, iTotalBitsets)
// torso
PRINT_COMP_TYPE_HEADER("COMP_TYPE_TORSO", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", TORSO_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", TORSO_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", TORSO_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", TORSO_FMM_15_0, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", TORSO_FMF_15_0, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_TORSO", iMaxItems, iTotalBitsets)
// legs
PRINT_COMP_TYPE_HEADER("COMP_TYPE_LEGS", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", LEGS_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", LEGS_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", LEGS_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", LEGS_FMM_15_15, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", LEGS_FMF_15_15, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_LEGS", iMaxItems, iTotalBitsets)
// hand
PRINT_COMP_TYPE_HEADER("COMP_TYPE_HAND", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", HAND_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", HAND_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", HAND_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", DUMMY_PED_COMP, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", DUMMY_PED_COMP, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_HAND", iMaxItems, iTotalBitsets)
// feet
PRINT_COMP_TYPE_HEADER("COMP_TYPE_FEET", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", FEET_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", FEET_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", FEET_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", FEET_FMM_15_15, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", FEET_FMF_15_15, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_FEET", iMaxItems, iTotalBitsets)
// teeth
PRINT_COMP_TYPE_HEADER("COMP_TYPE_TEETH", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", TEETH_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", TEETH_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", TEETH_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", TEETH_FMM_15_0, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", TEETH_FMF_9_5, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_TEETH", iMaxItems, iTotalBitsets)
// special
PRINT_COMP_TYPE_HEADER("COMP_TYPE_SPECIAL", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", SPECIAL_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", SPECIAL_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", SPECIAL_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", SPECIAL_FMM_15_0, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", SPECIAL_FMF_15_15, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_SPECIAL", iMaxItems, iTotalBitsets)
// special 2
PRINT_COMP_TYPE_HEADER("COMP_TYPE_SPECIAL2", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", SPECIAL2_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", SPECIAL2_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", SPECIAL2_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", SPECIAL2_FMM_9_4, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", SPECIAL2_FMF_7_4, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_SPECIAL2", iMaxItems, iTotalBitsets)
// decl
PRINT_COMP_TYPE_HEADER("COMP_TYPE_DECL", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", DECL_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", DECL_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", DECL_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", DECL_FMM_6_0, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", DECL_FMF_5_0, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_DECL", iMaxItems, iTotalBitsets)
// jbib
PRINT_COMP_TYPE_HEADER("COMP_TYPE_JBIB", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", JBIB_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", JBIB_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", JBIB_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", JBIB_FMM_15_0, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", JBIB_FMF_15_15, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_JBIB", iMaxItems, iTotalBitsets)
// outfit
PRINT_COMP_TYPE_HEADER("COMP_TYPE_OUTFIT", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", OUTFIT_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", OUTFIT_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", OUTFIT_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", DUMMY_PED_COMP, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", DUMMY_PED_COMP, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_OUTFIT", iMaxItems, iTotalBitsets)
// propgroup
PRINT_COMP_TYPE_HEADER("COMP_TYPE_PROPGROUP", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", PROPGROUP_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", PROPGROUP_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", PROPGROUP_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", DUMMY_PED_COMP, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", DUMMY_PED_COMP, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_PROPGROUP", iMaxItems, iTotalBitsets)
// props
PRINT_COMP_TYPE_HEADER("COMP_TYPE_PROPS", iMaxItems)
PRINT_INFO_FOR_CHAR("Michael ", PROPS_P0_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Franklin ", PROPS_P1_DLC, iMaxItems)
PRINT_INFO_FOR_CHAR("Trevor ", PROPS_P2_DLC, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP male ", PROPS_FMM_WATCH_1_2, iMaxItems)
//PRINT_INFO_FOR_CHAR("MP female ", PROPS_FMF_WATCH_1_2, iMaxItems)
PRINT_COMP_TYPE_FOOTER("COMP_TYPE_PROPS", iMaxItems, iTotalBitsets)
INT iCurrentBitsets = 150
INT iBitsetDiff = iCurrentBitsets - iTotalBitsets
CPRINTLN(DEBUG_PED_COMP, "iCurrentBitsets = ", iCurrentBitsets, " Total bitsets = ", iTotalBitsets, " Saving of ", iBitsetDiff)
CPRINTLN(DEBUG_PED_COMP, "---------------PRINT_PED_COMP_BITSETS_REQUIRED- END ---------------------------")
ENDPROC
#ENDIF
FUNC INT GET_ARMOUR_DRAWABLE_FOR_MP(PED_INDEX ped)
// Male
IF GET_ENTITY_MODEL(ped) = MP_M_FREEMODE_01
SWITCH GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB)
CASE 0 RETURN 1
CASE 1 RETURN 1
CASE 2 RETURN 2
CASE 3 RETURN 3
CASE 4 RETURN 3
CASE 5 RETURN 1
CASE 6 RETURN 9
CASE 7 RETURN 3
CASE 8 RETURN 1
CASE 9 RETURN 1
CASE 10 RETURN 8
CASE 11 RETURN 7
CASE 12 RETURN 1
CASE 13 RETURN 4
CASE 14 RETURN 6
CASE 15 RETURN 5
ENDSWITCH
//Female
ELSE
SWITCH GET_PED_DRAWABLE_VARIATION(ped, PED_COMP_JBIB)
CASE 0 RETURN 1
CASE 1 RETURN 4
CASE 2 RETURN 2
CASE 3 RETURN 3
CASE 4 RETURN 1
CASE 5 RETURN 1
CASE 6 RETURN 5
CASE 7 RETURN 4
CASE 8 RETURN 1
CASE 9 RETURN 1
CASE 10 RETURN 5
CASE 11 RETURN 1
CASE 12 RETURN 1
CASE 13 RETURN 1
CASE 14 RETURN 6
CASE 15 RETURN 1
ENDSWITCH
ENDIF
RETURN 0
ENDFUNC
/// PURPOSE:
/// Returns true if the item is one of the tshirts that get a new decal for reward unlocks
/// (and the reward has been unlocked)
/// PARAMS:
/// ePedModel - male or female mp
/// eType - type of item
/// eItem - item name
/// RETURNS:
/// TRUE if the item is a reward tshirt and the reward has been unlocked
FUNC BOOL IS_ITEM_A_REWARD_TSHIRT(MODEL_NAMES ePedModel, PED_COMP_TYPE_ENUM eType, PED_COMP_NAME_ENUM eItem)
IF ePedModel = MP_M_FREEMODE_01
IF eType = COMP_TYPE_JBIB
IF eItem = JBIB_FMM_1_7
IF IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_ROCKSTAR)
RETURN TRUE
ENDIF
ELIF eItem = JBIB_FMM_1_1
//IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_LSBELLE)
RETURN TRUE
ELIF eItem = JBIB_FMM_1_12
IF IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_REDSKULL)
RETURN TRUE
ENDIF
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
IF eItem = SPECIAL_FMM_1_7
OR eItem = SPECIAL_FMM_14_7
IF IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_ROCKSTAR)
RETURN TRUE
ENDIF
ELIF eItem = SPECIAL_FMM_1_1
OR eItem = SPECIAL_FMM_14_1
//IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_LSBELLE)
RETURN TRUE
ELIF eItem = SPECIAL_FMM_1_12
OR eItem = SPECIAL_FMM_14_12
//IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_LSBELLE)
RETURN TRUE
ENDIF
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
IF eType = COMP_TYPE_JBIB
IF eItem = JBIB_FMF_0_4
IF IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_ROCKSTAR)
RETURN TRUE
ENDIF
ELIF eItem = JBIB_FMF_0_7
//IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_LSBELLE)
RETURN TRUE
ELIF eItem = JBIB_FMF_0_9
IF IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_REDSKULL)
RETURN TRUE
ENDIF
ENDIF
ELIF eType = COMP_TYPE_SPECIAL
IF eItem = SPECIAL_FMF_0_4
OR eItem = SPECIAL_FMF_1_4
IF IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_ROCKSTAR)
RETURN TRUE
ENDIF
ELIF eItem = SPECIAL_FMF_0_7
OR eItem = SPECIAL_FMF_1_7
//IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_LSBELLE)
RETURN TRUE
ELIF eItem = SPECIAL_FMF_0_9
OR eItem = SPECIAL_FMF_1_9
//IS_MP_TATTOO_UNLOCKED(TSHIRT_TRANS_MP_FM_LSBELLE)
RETURN TRUE
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
PROC UNLOCK_REWARD_TSHIRT(MODEL_NAMES ePedModel, TATTOO_NAME_ENUM eTattooName)
IF ePedModel = MP_M_FREEMODE_01
IF eTattooName = TSHIRT_TRANS_MP_FM_ROCKSTAR
// Male: TSHIRT_TRANS_MP_FM_ROCKSTAR
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_JBIB, JBIB_FMM_1_7, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMM_1_7, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMM_14_7, TRUE)
ELIF eTattooName = TSHIRT_TRANS_MP_FM_LSBELLE
// Male: TSHIRT_TRANS_MP_FM_LSBELLE
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_JBIB, JBIB_FMM_1_1, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMM_1_1, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMM_14_1, TRUE)
ELIF eTattooName = TSHIRT_TRANS_MP_FM_REDSKULL
// Male: TSHIRT_TRANS_MP_FM_REDSKULL
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_JBIB, JBIB_FMM_1_12, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMM_1_12, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_M_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMM_14_12, TRUE)
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
IF eTattooName = TSHIRT_TRANS_MP_FM_ROCKSTAR
// Female: TSHIRT_TRANS_MP_FM_ROCKSTAR
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_JBIB, JBIB_FMF_0_4, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMF_0_4, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMF_1_4, TRUE)
ELIF eTattooName = TSHIRT_TRANS_MP_FM_LSBELLE
// Female: TSHIRT_TRANS_MP_FM_LSBELLE
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_JBIB, JBIB_FMF_0_7, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMF_0_7, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMF_1_7, TRUE)
ELIF eTattooName = TSHIRT_TRANS_MP_FM_REDSKULL
// Female: TSHIRT_TRANS_MP_FM_REDSKULL
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_JBIB, JBIB_FMF_0_9, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMF_0_9, TRUE)
SET_PED_COMP_ITEM_IS_NEW_MP(MP_F_FREEMODE_01, COMP_TYPE_SPECIAL, SPECIAL_FMF_1_9, TRUE)
ENDIF
ENDIF
ENDPROC
FUNC BOOL IS_PED_WEARING_CHRISTMAS_CLOTHES(PED_INDEX pedID)
PED_COMP_NAME_ENUM eItem
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(pedID)
IF ePedModel != MP_M_FREEMODE_01
AND ePedModel != MP_F_FREEMODE_01
RETURN FALSE
ENDIF
// Hats
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_PROPS, ENUM_TO_INT(ANCHOR_HEAD))
IF eItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PROP(ePedModel)
GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(pedID), COMP_TYPE_PROPS, eItem)
IF g_iLastDLCItemLockHash = HASH("CU_XMAS_CLOTHES")
RETURN TRUE
ENDIF
ENDIF
// Masks
IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_BERD) > 7
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_BERD)
IF eItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_BERD)
GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(pedID), COMP_TYPE_BERD, eItem)
IF g_iLastDLCItemLockHash = HASH("CU_XMAS_CLOTHES")
RETURN TRUE
ENDIF
ENDIF
ENDIF
// Jackets+Tops
IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB) > 15
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_JBIB)
IF eItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_JBIB)
GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(pedID), COMP_TYPE_JBIB, eItem)
IF g_iLastDLCItemLockHash = HASH("CU_XMAS_CLOTHES")
RETURN TRUE
ENDIF
ENDIF
ENDIF
IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL) > 15
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_SPECIAL)
IF eItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_SPECIAL)
GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(pedID), COMP_TYPE_SPECIAL, eItem)
IF g_iLastDLCItemLockHash = HASH("CU_XMAS_CLOTHES")
RETURN TRUE
ENDIF
ENDIF
ENDIF
// Legs
IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_LEG) > 15
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_LEGS)
IF eItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_LEG)
GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(pedID), COMP_TYPE_LEGS, eItem)
IF g_iLastDLCItemLockHash = HASH("CU_XMAS_CLOTHES")
RETURN TRUE
ENDIF
ENDIF
ENDIF
// Chain
IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_TEETH) > 15
eItem = GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_TEETH)
IF eItem >= GET_DEFAULT_DLC_PED_COMPONENT_FOR_PED_COMPONENT(ePedModel, PED_COMP_TEETH)
GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(pedID), COMP_TYPE_TEETH, eItem)
IF g_iLastDLCItemLockHash = HASH("CU_XMAS_CLOTHES")
RETURN TRUE
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_PILOT_SUIT(PED_INDEX pedID, PED_COMPONENT ePedCompCheck = PED_COMP_JBIB)
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, ePedCompCheck, DLC_RESTRICTION_TAG_PILOT_SUIT)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_HAZ_HOOD_UP(PED_INDEX pedID)
INT iDLCHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_SPECIAL), GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL), GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_SPECIAL))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCHash, DLC_RESTRICTION_TAG_HAZ_HOOD, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCHash, DLC_RESTRICTION_TAG_HOOD_UP, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_IMPOTENT_RAGE_OUTFIT(PED_INDEX pedID)
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, PED_COMP_JBIB, DLC_RESTRICTION_TAG_VWD_DRAW_1)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_HAZ_HOOD_DOWN(PED_INDEX pedID)
INT iDLCHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_SPECIAL), GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL), GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_SPECIAL))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCHash, DLC_RESTRICTION_TAG_HAZ_HOOD, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCHash, DLC_RESTRICTION_TAG_HOOD_UP, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_HAZ_MASK(PED_INDEX pedID)
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, PED_COMP_BERD, DLC_RESTRICTION_TAG_HAZ_MASK)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_JUGGERNAUT_SUIT(PED_INDEX pedID)
IF NOT DOES_ENTITY_EXIST(pedID)
OR IS_ENTITY_DEAD(pedID)
RETURN FALSE
ENDIF
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, PED_COMP_JBIB, DLC_RESTRICTION_TAG_JUGG_SUIT)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_MORPH_MASK(PED_INDEX pedID)
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, PED_COMP_BERD, DLC_RESTRICTION_TAG_MORPH_SUIT)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_MORPH_SUIT(PED_INDEX pedID)
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, PED_COMP_JBIB, DLC_RESTRICTION_TAG_MORPH_SUIT)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_SPECIAL_OUTFIT(PED_INDEX pedID, BOOL bCheckAliens = TRUE, BOOL bCheckSpacesuits = TRUE, BOOL bCheckSpaceranger = TRUE, BOOL bCheckPogo = TRUE)
IF NOT DOES_ENTITY_EXIST(pedID)
OR IS_ENTITY_DEAD(pedID)
RETURN FALSE
ENDIF
INT iTorsoHashname = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_TORSO), GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_TORSO), GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_TORSO))
IF bCheckaliens
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iTorsoHashname, DLC_RESTRICTION_TAG_ARENA_DRAW_0, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
IF bCheckSpacesuits
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iTorsoHashname, DLC_RESTRICTION_TAG_ARENA_DRAW_1, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
IF bCheckSpaceranger
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iTorsoHashname, DLC_RESTRICTION_TAG_ARENA_DRAW_3, ENUM_TO_INT(SHOP_PED_COMPONENT))
RETURN TRUE
ENDIF
IF bCheckPogo
// AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iTorsoHashname, DLC_RESTRICTION_TAG_bCheckPogo, ENUM_TO_INT(SHOP_PED_COMPONENT))
// RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_OUTFIT_BLOCKING_PARACHUTE(PED_INDEX pedID)
IF NOT DOES_ENTITY_EXIST(pedID)
OR IS_ENTITY_DEAD(pedID)
RETURN FALSE
ENDIF
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, PED_COMP_JBIB, DLC_RESTRICTION_TAG_BLOCK_PARACHUTE)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL PLAYER_CAN_CHANGE_HELMET_VISOR(PED_INDEX pedId)
IF NETWORK_IS_ACTIVITY_SESSION()
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_VEHICULAR_VENDETTA(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_DCTL(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_TURF_WARZONE(g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
IF IS_THIS_AN_ADVERSARY_MODE_MISSION(g_FMMC_STRUCT.iRootContentIDHash, g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
ENDIF
UNUSED_PARAMETER(pedId)
RETURN TRUE
ENDFUNC
FUNC BOOL PLAYER_CAN_CHANGE_ANIM(PED_INDEX pedId)
IF NETWORK_IS_ACTIVITY_SESSION()
IF IS_LOCAL_PLAYER_IN_ARENA_SPECTATOR_BOX()
RETURN TRUE
ENDIF
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_VEHICULAR_VENDETTA(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_DCTL(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_TURF_WARZONE(g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
IF IS_THIS_AN_ADVERSARY_MODE_MISSION(g_FMMC_STRUCT.iRootContentIDHash, g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
ENDIF
UNUSED_PARAMETER(pedId)
RETURN TRUE
ENDFUNC
FUNC BOOL PLAYER_CAN_CHANGE_MOOD(PED_INDEX pedId)
IF NETWORK_IS_ACTIVITY_SESSION()
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_VEHICULAR_VENDETTA(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_DCTL(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_TURF_WARZONE(g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
IF IS_THIS_AN_ADVERSARY_MODE_MISSION(g_FMMC_STRUCT.iRootContentIDHash, g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
ENDIF
UNUSED_PARAMETER(pedId)
RETURN TRUE
ENDFUNC
FUNC BOOL PLAYER_CAN_CHANGE_WALK(PED_INDEX pedId)
IF IS_PLAYER_ON_ANY_FM_MISSION_THAT_IS_NOT_GANG_ATTACK(PLAYER_ID())
RETURN FALSE
ENDIF
IF IS_PLAYER_USING_BALLISTIC_EQUIPMENT(PLAYER_ID())
RETURN FALSE
ENDIF
UNUSED_PARAMETER(pedId)
RETURN TRUE
ENDFUNC
FUNC BOOL PLAYER_CAN_CHANGE_ILLUMINATED_CLOTHING()
IF NETWORK_IS_ACTIVITY_SESSION()
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_VEHICULAR_VENDETTA(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_DCTL(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_TURF_WARZONE(g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
IF IS_THIS_AN_ADVERSARY_MODE_MISSION(g_FMMC_STRUCT.iRootContentIDHash, g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
ENDIF
RETURN TRUE
ENDFUNC
FUNC BOOL PLAYER_CAN_CHANGE_AUTO_HELMET(PED_INDEX pedId)
IF NETWORK_IS_ACTIVITY_SESSION()
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_VEHICULAR_VENDETTA(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_DCTL(g_FMMC_STRUCT.iAdversaryModeType)
OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_TURF_WARZONE(g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
IF IS_THIS_AN_ADVERSARY_MODE_MISSION(g_FMMC_STRUCT.iRootContentIDHash, g_FMMC_STRUCT.iAdversaryModeType)
RETURN FALSE
ENDIF
ENDIF
UNUSED_PARAMETER(pedId)
RETURN TRUE
ENDFUNC
FUNC BOOL SWAP_CHEM_SUIT_HOOD_FOR_ALTERNATE(PED_INDEX mPed)
INT HoodTxtID = GET_PED_TEXTURE_VARIATION(mPed, PED_COMP_SPECIAL)
INT iSpecialNameHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(mPed), ENUM_TO_INT(PED_COMP_SPECIAL), GET_PED_DRAWABLE_VARIATION(mPed, PED_COMP_SPECIAL), HoodTxtID)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialNameHash, DLC_RESTRICTION_TAG_HAZ_HOOD, ENUM_TO_INT(SHOP_PED_COMPONENT))
INT HoodID = -1
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialNameHash, DLC_RESTRICTION_TAG_HOOD_UP, ENUM_TO_INT(SHOP_PED_COMPONENT))
HoodID = GET_CHEMSUIT_HOOD_VARIATION(mPed, FALSE)
SET_PED_COMPONENT_VARIATION(mPed, PED_COMP_SPECIAL, HoodID, HoodTxtID)
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), " - SWAP_CHEM_SUIT_HOOD_FOR_ALTERNATE set \"", iSpecialNameHash, "\" from up to down - ", HoodID, ", ", HoodTxtID)
RETURN TRUE
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iSpecialNameHash, DLC_RESTRICTION_TAG_HOOD_DOWN, ENUM_TO_INT(SHOP_PED_COMPONENT))
HoodID = GET_CHEMSUIT_HOOD_VARIATION(mPed, TRUE)
SET_PED_COMPONENT_VARIATION(mPed, PED_COMP_SPECIAL, HoodID, HoodTxtID)
CPRINTLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), " - SWAP_CHEM_SUIT_HOOD_FOR_ALTERNATE set \"", iSpecialNameHash, "\" from down to up - ", HoodID, ", ", HoodTxtID)
RETURN TRUE
ENDIF
CERRORLN(DEBUG_PED_COMP, GET_THIS_SCRIPT_NAME(), " - SWAP_CHEM_SUIT_HOOD_FOR_ALTERNATE wearing a chem suit hood \"", iSpecialNameHash, "\" but not tagged as UP or DOWN?!?")
RETURN FALSE
ENDIF
CDEBUG1LN(DEBUG_PED_COMP, "SWAP_CHEM_SUIT_HOOD_FOR_ALTERNATE not wearing a chem suit hood.")
RETURN FALSE // not wearing a chem suit hood
ENDFUNC
FUNC BOOL IS_PED_WEARING_COMBAT_TOP(PED_INDEX pedID)
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, PED_COMP_JBIB, DLC_RESTRICTION_TAG_COMBAT_TOP)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_PED_WEARING_CREW_JACKET(PED_INDEX pedID)
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(pedID, PED_COMP_JBIB, DLC_RESTRICTION_TAG_CREW_JACKET)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_AIMING_THROUGH_SNIPER_SCOPE(PED_INDEX aPed )
IF IS_FIRST_PERSON_AIM_CAM_ACTIVE()
IF NOT IS_PED_INJURED(aPed)
WEAPON_TYPE aWeapon
GET_CURRENT_PED_WEAPON(aPed,aWeapon)
IF aWeapon = WEAPONTYPE_SNIPERRIFLE
OR aWeapon = WEAPONTYPE_HEAVYSNIPER
OR aWeapon = WEAPONTYPE_DLC_MARKSMANRIFLE
OR aWeapon = WEAPONTYPE_DLC_HEAVYSNIPER_MK2
RETURN TRUE
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
PROC UPDATE_PED_WEAPON_ANIMATION_OVERRIDE(PED_INDEX pedID)
IF DOES_ENTITY_EXIST(pedID)
AND NOT IS_PED_INJURED(pedID)
/////////////////////////////////////////////////////////////////
/// Use female override on male ped when wearing big jackets
IF GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01
INT iDLCJbibCheck = -1
INT iDLCJbibNameHash = -1
PED_COMP_NAME_ENUM eJbib = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(pedID, COMP_TYPE_JBIB)
IF eJbib >= JBIB_FMM_DLC
iDLCJbibNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_M_FREEMODE_01, eJbib, COMP_TYPE_JBIB, 3)
iDLCJbibCheck = GET_DLC_DRAW_TAG(iDLCJbibNameHash)
ENDIF
INT iDLCSpecialNameHash = -1
PED_COMP_NAME_ENUM eSpecial = GET_PED_COMPONENT_ITEM_CURRENT_FROM_LOOKUP(pedID, COMP_TYPE_SPECIAL)
IF eSpecial >= SPECIAL_FMM_DLC
iDLCSpecialNameHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_M_FREEMODE_01, eSpecial, COMP_TYPE_SPECIAL, 3)
ENDIF
// JBIB
IF (eJbib >= JBIB_FMM_3_0 AND eJbib <= JBIB_FMM_3_15)
OR (eJbib >= JBIB_FMM_4_0 AND eJbib <= JBIB_FMM_4_15)
OR (eJbib >= JBIB_FMM_6_0 AND eJbib <= JBIB_FMM_6_11)
OR (eJbib >= JBIB_FMM_7_0 AND eJbib <= JBIB_FMM_7_15)
OR (eJbib >= JBIB_FMM_10_0 AND eJbib <= JBIB_FMM_10_15)
OR (iDLCJbibCheck = 3)
OR (iDLCJbibCheck = 4)
OR (iDLCJbibCheck = 6)
OR (iDLCJbibCheck = 7)
OR (iDLCJbibCheck = 10)
OR (DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibNameHash, DLC_RESTRICTION_TAG_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibNameHash, DLC_RESTRICTION_TAG_TUX_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT)))
OR (DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibNameHash, DLC_RESTRICTION_TAG_ANIM_OVERRIDE, ENUM_TO_INT(SHOP_PED_COMPONENT)))
// SPECIAL
OR (DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCSpecialNameHash, DLC_RESTRICTION_TAG_OVER_JACKET, ENUM_TO_INT(SHOP_PED_COMPONENT)))
SET_WEAPON_ANIMATION_OVERRIDE(pedID, HASH("MP_F_Freemode"))
SET_MOVEMENT_MODE_OVERRIDE(PLAYER_PED_ID(), "MP_FEMALE_ACTION") // url:bugstar:2327086
PRINTLN("UPDATE_PED_WEAPON_ANIMATION_OVERRIDE - setting override")
ELSE
SET_WEAPON_ANIMATION_OVERRIDE(pedID, HASH("Default"))
SET_MOVEMENT_MODE_OVERRIDE(PLAYER_PED_ID()) // url:bugstar:2327086
PRINTLN("UPDATE_PED_WEAPON_ANIMATION_OVERRIDE - clearing override")
ENDIF
ENDIF
ENDIF
ENDPROC
PROC STORE_HELMET_VISOR_PROP_INDICES(PED_INDEX PedIndex, INT OverwriteHelmetPropIndex, INT OverwriteHelmetTexIndex, BOOL bSetPedHelmetCofigFlags = TRUE)
PED_PROP_POSITION ePropPos = ANCHOR_HEAD
INT iItemHash = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(PedIndex), ENUM_TO_INT(ePropPos), OverwriteHelmetPropIndex, OverwriteHelmetTexIndex)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemHash, DLC_RESTRICTION_TAG_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
IF GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iItemHash) > 0
INT iAltProp
INT iRetNameHash, iRetPropEnum, iRetPropPos
INT iAltPropCount = GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iItemHash)
INT iAltNameHash = 0
REPEAT iAltPropCount iAltProp
GET_VARIANT_PROP(iItemHash, iAltProp, iRetNameHash, iRetPropEnum, iRetPropPos)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
iAltNameHash = iRetNameHash
// Forced on-disk item
ELSE
//eItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetPropEnum)
ENDIF
iAltProp = iAltPropCount+1// Bail
ENDREPEAT
IF iAltNameHash != 0
BOOL bVisorUp = FALSE
INT HelmetVisorUpPropId = -1, HelmetVisorDownPropId = -1
scrShopPedProp componentItem
GET_SHOP_PED_PROP(iAltNameHash, componentItem)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iItemHash, DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
bVisorUp = TRUE
HelmetVisorUpPropId = OverwriteHelmetPropIndex
HelmetVisorDownPropId = componentItem.m_propIndex
ELSE
bVisorUp = FALSE
HelmetVisorUpPropId = componentItem.m_propIndex
HelmetVisorDownPropId = OverwriteHelmetPropIndex
ENDIF
PRINTLN(GET_THIS_SCRIPT_NAME(), ": STORE_HELMET_VISOR_PROP_INDICES : helmet visor prop indices(", PICK_STRING(bVisorUp, "bVisorUp", "bVisorDown"), ", UpPropId:", HelmetVisorUpPropId, ", DownPropId:", HelmetVisorDownPropId, ")")
DEBUG_PRINTCALLSTACK()
SET_PED_HELMET_VISOR_PROP_INDICES(PedIndex, bVisorUp, HelmetVisorUpPropId, HelmetVisorDownPropId)
IF bSetPedHelmetCofigFlags
SET_PED_CONFIG_FLAG(PedIndex, PCF_HasHelmet, TRUE)
IF NOT IS_PED_ON_ANY_BIKE(PedIndex)
SET_PED_CONFIG_FLAG(PedIndex, PCF_DontTakeOffHelmet, TRUE)
ENDIF
ENDIF
EXIT
ENDIF
ENDIF
PRINTLN(GET_THIS_SCRIPT_NAME(), ": STORE_HELMET_VISOR_PROP_INDICES : no valid helmet visor prop indices found")
DEBUG_PRINTCALLSTACK()
IF bSetPedHelmetCofigFlags
SET_PED_CONFIG_FLAG(PedIndex, PCF_HasHelmet, TRUE)
IF NOT IS_PED_ON_ANY_BIKE(PedIndex)
SET_PED_CONFIG_FLAG(PedIndex, PCF_DontTakeOffHelmet, TRUE)
ENDIF
ENDIF
ELSE
PRINTLN("STORE_HELMET_VISOR_PROP_INDICES : not a helmet valid helmet, [", OverwriteHelmetPropIndex, ", ", OverwriteHelmetTexIndex, "] iItemHash:", iItemHash)
ENDIF
ENDPROC
ENUM HEIST_OUTFIT_SYTLE
OUTFIT_STYLE_NONE = 999,
OUTFIT_STYLE_NOT_SET = 998,
OUTFIT_STYLE_STREET = 0,
OUTFIT_STYLE_POLICE,
OUTFIT_STYLE_CASUAL,
OUTFIT_STYLE_DRIVER,
OUTFIT_STYLE_CASUAL_STEALTH,
OUTFIT_STYLE_CASUAL_PILOT, // 5
OUTFIT_STYLE_STREET_COMBAT,
OUTFIT_STYLE_PRISONER,
OUTFIT_STYLE_PRISON_OFFICER,
OUTFIT_STYLE_TACTICAL_STEALTH,
OUTFIT_STYLE_LIGHT_COMBAT, //10
OUTFIT_STYLE_HEAVY_COMBAT,
OUTFIT_STYLE_STEALTH_PILOT,
OUTFIT_STYLE_REFUSE_COLLECTOR,
OUTFIT_STYLE_NIGHT_BIKER,
OUTFIT_STYLE_TOURIST, //15
OUTFIT_STYLE_SMART_SUITS,
OUTFIT_STYLE_SLOPPY_SUITS,
OUTFIT_STYLE_SHARP_SUITS,
OUTFIT_STYLE_MINIMAL_SUITS,
OUTFIT_STYLE_TUXEDOS, //20
OUTFIT_STYLE_HAZCHEM,
OUTFIT_STYLE_COVERALLS,
OUTFIT_STYLE_FIGHTER_PILOT,
OUTFIT_STYLE_LOWRIDER,
OUTFIT_STYLE_BALLAS, //25
OUTFIT_STYLE_VAGOS,
OUTFIT_STYLE_FUNERAL,
OUTFIT_STYLE_SCUBA,
OUTFIT_STYLE_PARAMEDIC,
OUTFIT_STYLE_MEDTECH1, //30
OUTFIT_STYLE_MEDTECH2, //31 - end of first bitset.
OUTFIT_STYLE_MODERN_STEALTH,
OUTFIT_STYLE_CASUAL_PILOT_2,
OUTFIT_STYLE_FIGHTER_PILOT_2,
OUTFIT_STYLE_HIGH_TECH_RIOT, //35
OUTFIT_STYLE_HIGH_TECH_IMPACT,
OUTFIT_STYLE_MED_TECH_MASKED,
OUTFIT_STYLE_MED_TECH_REBELLION,
OUTFIT_STYLE_MED_TECH_HAVOC,
OUTFIT_STYLE_MED_TECH_ADAPTABLE, //40
OUTFIT_STYLE_SUB_DRIVER,
OUTFIT_STYLE_HEAVY_COMBAT_GEAR,
OUTFIT_STYLE_LOW_TECH_TACTICAL,
OUTFIT_STYLE_LOW_TECH_COMBAT,
OUTFIT_STYLE_CLASSIC_STEALTH, //45
OUTFIT_STYLE_MILITARY_CAMO,
OUTFIT_STYLE_GORKA,
#IF FEATURE_CASINO_HEIST
OUTFIT_STYLE_CASINO_HEIST_STEALTH_I,
OUTFIT_STYLE_CASINO_HEIST_STEALTH_II,
OUTFIT_STYLE_CASINO_HEIST_STEALTH_III, //50
OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_I,
OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_II,
OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_III,
OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_BUGSTAR,
OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_MAINTENANCE,//55
OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_GRUPPESECHS,
OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_CELEB,
OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_I,
OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_II,
OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_III, //60
OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_I,
OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_II,
OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_III, //63 - end of second bitset
#ENDIF
OUTFIT_STYLE_ISLAND_HEIST_SMUGGLER,
OUTFIT_STYLE_ISLAND_HEIST_HEAVY_I,
OUTFIT_STYLE_ISLAND_HEIST_HEAVY_II,
OUTFIT_STYLE_ISLAND_HEIST_LIGHT_I,
OUTFIT_STYLE_ISLAND_HEIST_LIGHT_II,
OUTFIT_STYLE_ISLAND_HEIST_STEALTH_I,
OUTFIT_STYLE_ISLAND_HEIST_STEALTH_II,
OUTFIT_STYLE_FIXER_PARTY_PROMOTER,
OUTFIT_STYLE_FIXER_BILLIONAIRE_GAMES,
OUTFIT_STYLE_FIXER_GOLF,
OUTFIT_STYLE_SUM22_IAA_AGENTS,
OUTFIT_STYLE_MAX
ENDENUM
// Versus Outfits styles (either Classic or Themed)
ENUM VERSUS_OUTFIT_STYLE
VS_CLASSIC_COMBO_0 = 0,
VS_CLASSIC_COMBO_1,
VS_CLASSIC_COMBO_2,
VS_CLASSIC_COMBO_3,
VS_CLASSIC_COMBO_4,
VS_CLASSIC_COMBO_5,
VS_CLASSIC_COMBO_6,
VS_CLASSIC_COMBO_7,
VS_CLASSIC_COMBO_8,
VS_CLASSIC_COMBO_9,
VS_CLASSIC_COMBO_10,
VS_CLASSIC_COMBO_11,
VS_CLASSIC_COMBO_12,
VS_CLASSIC_MAX,
VS_THEMED_COMBO_0 = 0,
VS_THEMED_COMBO_1,
VS_THEMED_COMBO_2,
VS_THEMED_COMBO_3,
VS_THEMED_COMBO_4,
VS_THEMED_COMBO_5,
VS_THEMED_COMBO_6,
VS_THEMED_COMBO_7,
VS_THEMED_COMBO_8,
VS_THEMED_COMBO_9,
VS_THEMED_COMBO_10,
VS_THEMED_COMBO_11,
VS_THEMED_COMBO_12,
VS_THEMED_MAX
,VS_ENTOURAGE_COMBO_0 = 0
,VS_ENTOURAGE_COMBO_1
,VS_ENTOURAGE_MAX
,VS_HALLOWEEN_COMBO_0 = 0
,VS_HALLOWEEN_COMBO_1
,VS_HALLOWEEN_COMBO_2
,VS_HALLOWEEN_COMBO_3
,VS_HALLOWEEN_COMBO_4
,VS_HALLOWEEN_COMBO_5
,VS_HALLOWEEN_MAX
,VS_SOLO_COMBO_0 = 0
,VS_SOLO_COMBO_1
,VS_SOLO_COMBO_2
,VS_SOLO_COMBO_3
,VS_SOLO_COMBO_4
,VS_SOLO_COMBO_5
,VS_SOLO_COMBO_6
,VS_SOLO_COMBO_7
,VS_SOLO_COMBO_8
,VS_SOLO_COMBO_9
,VS_SOLO_COMBO_10
,VS_SOLO_COMBO_11
,VS_SOLO_MAX
,VS_HIDDEN_COMBO_0 = 0
,VS_HIDDEN_COMBO_1
,VS_HIDDEN_COMBO_2
,VS_HIDDEN_COMBO_3
,VS_HIDDEN_COMBO_4
,VS_HIDDEN_COMBO_5
,VS_HIDDEN_COMBO_6
,VS_HIDDEN_COMBO_7
,VS_HIDDEN_COMBO_8
,VS_HIDDEN_COMBO_9
,VS_HIDDEN_COMBO_10
,VS_HIDDEN_COMBO_11
,VS_HIDDEN_COMBO_12
,VS_HIDDEN_COMBO_13
,VS_HIDDEN_COMBO_14
,VS_HIDDEN_COMBO_15
,VS_HIDDEN_COMBO_16
,VS_HIDDEN_COMBO_17
,VS_HIDDEN_COMBO_18
,VS_HIDDEN_COMBO_19
,VS_HIDDEN_COMBO_20
,VS_HIDDEN_COMBO_21
,VS_HIDDEN_COMBO_22
,VS_HIDDEN_COMBO_23
,VS_HIDDEN_COMBO_24
,VS_HIDDEN_COMBO_25
,VS_HIDDEN_COMBO_26
,VS_HIDDEN_COMBO_27
,VS_HIDDEN_COMBO_28
,VS_HIDDEN_COMBO_29
,VS_HIDDEN_COMBO_30
,VS_HIDDEN_COMBO_31
,VS_HIDDEN_COMBO_32
,VS_HIDDEN_COMBO_33
,VS_HIDDEN_COMBO_34
,VS_HIDDEN_COMBO_35
,VS_HIDDEN_COMBO_36
,VS_HIDDEN_COMBO_37
,VS_HIDDEN_COMBO_38
,VS_HIDDEN_COMBO_39
,VS_HIDDEN_COMBO_40
,VS_HIDDEN_COMBO_41
,VS_HIDDEN_COMBO_42
,VS_HIDDEN_COMBO_43
,VS_HIDDEN_COMBO_44
,VS_HIDDEN_COMBO_45
,VS_HIDDEN_COMBO_46
,VS_HIDDEN_COMBO_47
,VS_HIDDEN_COMBO_48
,VS_HIDDEN_COMBO_49
,VS_HIDDEN_COMBO_50
,VS_HIDDEN_COMBO_51
,VS_HIDDEN_COMBO_52
,VS_HIDDEN_MAX
ENDENUM
ENUM MP_OUTFIT_MASK_ENUM
//--- Heist masks ---
OUTFIT_MASK_FREEMODE = -2
,OUTFIT_MASK_NONE = -1
,OUTFIT_MASK_AMATEUR_0 = 0
,OUTFIT_MASK_AMATEUR_1
,OUTFIT_MASK_AMATEUR_2
,OUTFIT_MASK_AMATEUR_3
,OUTFIT_MASK_ANIMALS_0
,OUTFIT_MASK_ANIMALS_1
,OUTFIT_MASK_ANIMALS_2
,OUTFIT_MASK_ANIMALS_3
,OUTFIT_MASK_PAPER_BAGS_0
,OUTFIT_MASK_PAPER_BAGS_1
,OUTFIT_MASK_PAPER_BAGS_2//10
,OUTFIT_MASK_PAPER_BAGS_3
,OUTFIT_MASK_PAPER_BAGS_4
,OUTFIT_MASK_PAPER_BAGS_5
,OUTFIT_MASK_PAPER_BAGS_6
,OUTFIT_MASK_PAPER_BAGS_7
,OUTFIT_MASK_PAPER_BAGS_8
,OUTFIT_MASK_PAPER_BAGS_9
,OUTFIT_MASK_PAPER_BAGS_10
,OUTFIT_MASK_PAPER_BAGS_11
,OUTFIT_MASK_PAPER_BAGS_12
,OUTFIT_MASK_PAPER_BAGS_13//20
,OUTFIT_MASK_PAPER_BAGS_14
,OUTFIT_MASK_PAPER_BAGS_15
,OUTFIT_MASK_PAPER_BAGS_16
,OUTFIT_MASK_PAPER_BAGS_17
,OUTFIT_MASK_PAPER_BAGS_18
,OUTFIT_MASK_PAPER_BAGS_19
,OUTFIT_MASK_PAPER_BAGS_20
,OUTFIT_MASK_PAPER_BAGS_21
,OUTFIT_MASK_PAPER_BAGS_22
,OUTFIT_MASK_PAPER_BAGS_23//30
,OUTFIT_MASK_PAPER_BAGS_24
,OUTFIT_MASK_PAPER_BAGS_25
,OUTFIT_MASK_BEASTS_0
,OUTFIT_MASK_BEASTS_1
,OUTFIT_MASK_BEASTS_2
,OUTFIT_MASK_BEASTS_3
,OUTFIT_MASK_CHARACTERS_0
,OUTFIT_MASK_CHARACTERS_1
,OUTFIT_MASK_CHARACTERS_2
,OUTFIT_MASK_CHARACTERS_3//40
,OUTFIT_MASK_CLASSIC_MONSTERS_0
,OUTFIT_MASK_CLASSIC_MONSTERS_1
,OUTFIT_MASK_CLASSIC_MONSTERS_2
,OUTFIT_MASK_CLASSIC_MONSTERS_3
,OUTFIT_MASK_CARNIVAL_0
,OUTFIT_MASK_CARNIVAL_1
,OUTFIT_MASK_CARNIVAL_2
,OUTFIT_MASK_CARNIVAL_3
,OUTFIT_MASK_GAS_MASKS_0
,OUTFIT_MASK_GAS_MASKS_1 //50
,OUTFIT_MASK_HELMETS_0
,OUTFIT_MASK_HELMETS_1
,OUTFIT_MASK_HELMETS_2
,OUTFIT_MASK_HELMETS_3
,OUTFIT_MASK_HELMETS_4
,OUTFIT_MASK_HELMETS_5
,OUTFIT_MASK_HELMETS_6
,OUTFIT_MASK_HELMETS_7
,OUTFIT_MASK_HORROR_HOCKEY_0
,OUTFIT_MASK_HORROR_HOCKEY_1//60
,OUTFIT_MASK_HORROR_HOCKEY_2
,OUTFIT_MASK_HORROR_HOCKEY_3
,OUTFIT_MASK_PUPPETS_0
,OUTFIT_MASK_PUPPETS_1
,OUTFIT_MASK_PUPPETS_2
,OUTFIT_MASK_PUPPETS_3
,OUTFIT_MASK_SKULLS_0
,OUTFIT_MASK_SKULLS_1
,OUTFIT_MASK_SKULLS_2
,OUTFIT_MASK_SKULLS_3//70
,OUTFIT_MASK_TACTICAL_0
,OUTFIT_MASK_TACTICAL_1
,OUTFIT_MASK_TACTICAL_2
,OUTFIT_MASK_TACTICAL_3
,OUTFIT_MASK_TAPE_0
,OUTFIT_MASK_TAPE_1
,OUTFIT_MASK_TAPE_2
,OUTFIT_MASK_TAPE_3
,OUTFIT_MASK_THEATRICAL_0
,OUTFIT_MASK_THEATRICAL_1//80
,OUTFIT_MASK_THEATRICAL_2
,OUTFIT_MASK_THEATRICAL_3
,OUTFIT_MASK_PIGS_0
,OUTFIT_MASK_PIGS_1
,OUTFIT_MASK_PIGS_2
,OUTFIT_MASK_PIGS_3
,OUTFIT_MASK_DUCT_TAPE_0
,OUTFIT_MASK_DUCT_TAPE_1
,OUTFIT_MASK_DUCT_TAPE_2
,OUTFIT_MASK_DUCT_TAPE_3//90
,OUTFIT_MASK_INCOGNITO_0
,OUTFIT_MASK_INCOGNITO_1
,OUTFIT_MASK_INCOGNITO_2
,OUTFIT_MASK_INCOGNITO_3
,OUTFIT_MASK_BALACLAVAS_0
,OUTFIT_MASK_BALACLAVAS_1
,OUTFIT_MASK_BALACLAVAS_2
,OUTFIT_MASK_BALACLAVAS_3
,OUTFIT_MASK_BALACLAVAS_4
,OUTFIT_MASK_BALACLAVAS_5
,OUTFIT_MASK_BALACLAVAS_6
,OUTFIT_MASK_BALACLAVAS_7
,OUTFIT_MASK_BALACLAVAS_8
,OUTFIT_MASK_BALACLAVAS_9
,OUTFIT_MASK_BALACLAVAS_10
,OUTFIT_MASK_BALACLAVAS_11
,OUTFIT_MASK_CAMO_0
,OUTFIT_MASK_CAMO_1//100
,OUTFIT_MASK_CAMO_2
,OUTFIT_MASK_CAMO_3
,OUTFIT_MASK_CAMO_4
,OUTFIT_MASK_CAMO_5
,OUTFIT_MASK_PSYCHOTIC_0
,OUTFIT_MASK_PSYCHOTIC_1
,OUTFIT_MASK_PSYCHOTIC_2
,OUTFIT_MASK_PSYCHOTIC_3
,OUTFIT_MASK_STREET_0
,OUTFIT_MASK_STREET_1
,OUTFIT_MASK_STREET_2
,OUTFIT_MASK_STREET_3//110
,OUTFIT_MASK_STREET_4
,OUTFIT_MASK_STREET_5
,OUTFIT_MASK_BANDANAS_0
,OUTFIT_MASK_BANDANAS_1
,OUTFIT_MASK_BANDANAS_2
,OUTFIT_MASK_BANDANAS_3
,OUTFIT_MASK_HOODS_0
,OUTFIT_MASK_HOODS_1
,OUTFIT_MASK_HOODS_2
,OUTFIT_MASK_HOODS_3
,OUTFIT_MASK_DESIGNER_0
,OUTFIT_MASK_DESIGNER_1
,OUTFIT_MASK_DESIGNER_2
,OUTFIT_MASK_DESIGNER_3
,OUTFIT_MASK_DESIGNER_4
,OUTFIT_MASK_DESIGNER_5
,MASK_HEIST_HALLOWEEN_DEVILISH_0
,MASK_HEIST_HALLOWEEN_DEVILISH_1
,MASK_HEIST_HALLOWEEN_DEVILISH_2
,MASK_HEIST_HALLOWEEN_DEVILISH_3
,MASK_HEIST_HALLOWEEN_DEVILISH_4
,MASK_HEIST_HALLOWEEN_DEVILISH_5
,MASK_HEIST_HALLOWEEN_SADISTIC_0
,MASK_HEIST_HALLOWEEN_SADISTIC_1
,MASK_HEIST_HALLOWEEN_SADISTIC_2
,MASK_HEIST_HALLOWEEN_SADISTIC_3
,MASK_HEIST_HALLOWEEN_POSSESSED_0
,MASK_HEIST_HALLOWEEN_POSSESSED_1
,MASK_HEIST_HALLOWEEN_POSSESSED_2
,MASK_HEIST_HALLOWEEN_POSSESSED_3
,MASK_HEIST_HALLOWEEN_FIENDS_0
,MASK_HEIST_HALLOWEEN_FIENDS_1
,MASK_HEIST_HALLOWEEN_FIENDS_2
,MASK_HEIST_HALLOWEEN_FIENDS_3
,MASK_HEIST_HALLOWEEN_CREATURES_0
,MASK_HEIST_HALLOWEEN_CREATURES_1
,MASK_HEIST_HALLOWEEN_CREATURES_2
,MASK_HEIST_HALLOWEEN_CREATURES_3
,MASK_HEIST_HALLOWEEN_WICKED_0
,MASK_HEIST_HALLOWEEN_WICKED_1
,MASK_HEIST_HALLOWEEN_WICKED_2
,MASK_HEIST_HALLOWEEN_WICKED_3
#IF FEATURE_CASINO_HEIST
,MASK_CASINO_HEIST_DEFAULT_0
,MASK_CASINO_HEIST_DEFAULT_1
,MASK_CASINO_HEIST_GEOMETRIC_0
,MASK_CASINO_HEIST_GEOMETRIC_1
,MASK_CASINO_HEIST_GEOMETRIC_2
,MASK_CASINO_HEIST_GEOMETRIC_3
,MASK_CASINO_HEIST_GEOMETRIC_4
,MASK_CASINO_HEIST_GEOMETRIC_5
,MASK_CASINO_HEIST_GEOMETRIC_6
,MASK_CASINO_HEIST_GEOMETRIC_7
,MASK_CASINO_HEIST_GEOMETRIC_8
,MASK_CASINO_HEIST_HUNTER_0
,MASK_CASINO_HEIST_HUNTER_1
,MASK_CASINO_HEIST_HUNTER_2
,MASK_CASINO_HEIST_HUNTER_3
,MASK_CASINO_HEIST_HUNTER_4
,MASK_CASINO_HEIST_HUNTER_5
,MASK_CASINO_HEIST_HUNTER_6
,MASK_CASINO_HEIST_HUNTER_7
,MASK_CASINO_HEIST_HUNTER_8
,MASK_CASINO_HEIST_HUNTER_9
,MASK_CASINO_HEIST_ONIHALF_0
,MASK_CASINO_HEIST_ONIHALF_1
,MASK_CASINO_HEIST_ONIHALF_2
,MASK_CASINO_HEIST_ONIHALF_3
,MASK_CASINO_HEIST_ONIHALF_4
,MASK_CASINO_HEIST_ONIHALF_5
,MASK_CASINO_HEIST_EMOJI_0
,MASK_CASINO_HEIST_EMOJI_1
,MASK_CASINO_HEIST_EMOJI_2
,MASK_CASINO_HEIST_EMOJI_3
,MASK_CASINO_HEIST_EMOJI_4
,MASK_CASINO_HEIST_EMOJI_5
,MASK_CASINO_HEIST_EMOJI_6
,MASK_CASINO_HEIST_EMOJI_7
,MASK_CASINO_HEIST_ORNATE_SKULL_0
,MASK_CASINO_HEIST_ORNATE_SKULL_1
,MASK_CASINO_HEIST_ORNATE_SKULL_2
,MASK_CASINO_HEIST_ORNATE_SKULL_3
,MASK_CASINO_HEIST_ORNATE_SKULL_4
,MASK_CASINO_HEIST_ORNATE_SKULL_5
,MASK_CASINO_HEIST_LUCKY_FRUITS_0
,MASK_CASINO_HEIST_LUCKY_FRUITS_1
,MASK_CASINO_HEIST_LUCKY_FRUITS_2
,MASK_CASINO_HEIST_LUCKY_FRUITS_3
,MASK_CASINO_HEIST_LUCKY_FRUITS_4
,MASK_CASINO_HEIST_LUCKY_FRUITS_5
,MASK_CASINO_HEIST_GUERILLA_0
,MASK_CASINO_HEIST_GUERILLA_1
,MASK_CASINO_HEIST_GUERILLA_2
,MASK_CASINO_HEIST_GUERILLA_3
,MASK_CASINO_HEIST_GUERILLA_4
,MASK_CASINO_HEIST_GUERILLA_5
,MASK_CASINO_HEIST_GUERILLA_6
,MASK_CASINO_HEIST_GUERILLA_7
,MASK_CASINO_HEIST_GUERILLA_8
,MASK_CASINO_HEIST_CLOWNS_0
,MASK_CASINO_HEIST_CLOWNS_1
,MASK_CASINO_HEIST_CLOWNS_2
,MASK_CASINO_HEIST_CLOWNS_3
,MASK_CASINO_HEIST_CLOWNS_4
,MASK_CASINO_HEIST_CLOWNS_5
,MASK_CASINO_HEIST_CLOWNS_6
,MASK_CASINO_HEIST_CLOWNS_7
,MASK_CASINO_HEIST_ANIMALS_0
,MASK_CASINO_HEIST_ANIMALS_1
,MASK_CASINO_HEIST_ANIMALS_2
,MASK_CASINO_HEIST_ANIMALS_3
,MASK_CASINO_HEIST_ANIMALS_4
,MASK_CASINO_HEIST_ANIMALS_5
,MASK_CASINO_HEIST_ANIMALS_6
,MASK_CASINO_HEIST_ANIMALS_7
,MASK_CASINO_HEIST_RIOT_0
,MASK_CASINO_HEIST_RIOT_1
,MASK_CASINO_HEIST_RIOT_2
,MASK_CASINO_HEIST_RIOT_3
,MASK_CASINO_HEIST_RIOT_4
,MASK_CASINO_HEIST_RIOT_5
,MASK_CASINO_HEIST_RIOT_6
,MASK_CASINO_HEIST_RIOT_7
,MASK_CASINO_HEIST_ONIFULL_0
,MASK_CASINO_HEIST_ONIFULL_1
,MASK_CASINO_HEIST_ONIFULL_2
,MASK_CASINO_HEIST_ONIFULL_3
,MASK_CASINO_HEIST_ONIFULL_4
,MASK_CASINO_HEIST_ONIFULL_5
,MASK_CASINO_HEIST_HOCKEY_0
,MASK_CASINO_HEIST_HOCKEY_1
,MASK_CASINO_HEIST_HOCKEY_2
,MASK_CASINO_HEIST_HOCKEY_3
,MASK_CASINO_HEIST_HOCKEY_4
,MASK_CASINO_HEIST_HOCKEY_5
,MASK_CASINO_HEIST_HOCKEY_6
,MASK_CASINO_HEIST_HOCKEY_7
#ENDIF
,MASK_ISLAND_HEIST_BRANDED_HALF_0
,MASK_ISLAND_HEIST_BRANDED_HALF_1
,MASK_ISLAND_HEIST_BRANDED_HALF_2
,MASK_ISLAND_HEIST_BRANDED_HALF_3
,MASK_ISLAND_HEIST_BRANDED_HALF_4
,MASK_ISLAND_HEIST_BRANDED_HALF_5
,MASK_ISLAND_HEIST_BRANDED_HALF_6
,MASK_ISLAND_HEIST_BRANDED_HALF_7
, MASK_ISLAND_HEIST_PAINTED_FULL_0
, MASK_ISLAND_HEIST_PAINTED_FULL_1
, MASK_ISLAND_HEIST_PAINTED_FULL_2
, MASK_ISLAND_HEIST_PAINTED_FULL_3
, MASK_ISLAND_HEIST_PAINTED_FULL_4
, MASK_ISLAND_HEIST_PAINTED_FULL_5
, MASK_ISLAND_HEIST_CAMO_SPEC_0
, MASK_ISLAND_HEIST_CAMO_SPEC_1
, MASK_ISLAND_HEIST_CAMO_SPEC_2
, MASK_ISLAND_HEIST_CAMO_SPEC_3
, MASK_ISLAND_HEIST_CAMO_SPEC_4
, MASK_ISLAND_HEIST_CAMO_SPEC_5
, MASK_ISLAND_HEIST_NECK_GAITERS_0
, MASK_ISLAND_HEIST_NECK_GAITERS_1
, MASK_ISLAND_HEIST_NECK_GAITERS_2
, MASK_ISLAND_HEIST_NECK_GAITERS_3
, MASK_ISLAND_HEIST_NECK_GAITERS_4
, MASK_ISLAND_HEIST_NECK_GAITERS_5
, MASK_ISLAND_HEIST_NECK_GAITERS_6
, MASK_ISLAND_HEIST_NECK_GAITERS_7
, MASK_ISLAND_HEIST_FACE_WRAPS_0
, MASK_ISLAND_HEIST_FACE_WRAPS_1
, MASK_ISLAND_HEIST_FACE_WRAPS_2
, MASK_ISLAND_HEIST_FACE_WRAPS_3
, MASK_ISLAND_HEIST_FACE_WRAPS_4
, MASK_ISLAND_HEIST_FACE_WRAPS_5
, MASK_ISLAND_HEIST_NIGHT_OPS_0
, MASK_ISLAND_HEIST_NIGHT_OPS_1
, MASK_ISLAND_HEIST_NIGHT_OPS_2
, MASK_ISLAND_HEIST_NIGHT_OPS_3
, MASK_ISLAND_HEIST_NIGHT_VISION_0
, MASK_ISLAND_HEIST_NIGHT_VISION_1
, MASK_ISLAND_HEIST_NIGHT_VISION_2
, MASK_ISLAND_HEIST_NIGHT_VISION_3
, MASK_ISLAND_HEIST_CAMO_HALF_0
, MASK_ISLAND_HEIST_CAMO_HALF_1
, MASK_ISLAND_HEIST_CAMO_HALF_2
, MASK_ISLAND_HEIST_CAMO_HALF_3
, MASK_ISLAND_HEIST_CAMO_HALF_4
, MASK_ISLAND_HEIST_CAMO_HALF_5
, MASK_ISLAND_HEIST_CAMO_HALF_6
, MASK_ISLAND_HEIST_CAMO_HALF_7
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION_0
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION_1
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION_2
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION_3
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION_4
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION_5
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION_6
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION_7
, MASK_ISLAND_HEIST_ISLAND_GUERILLA_0
, MASK_ISLAND_HEIST_ISLAND_GUERILLA_1
, MASK_ISLAND_HEIST_ISLAND_GUERILLA_2
, MASK_ISLAND_HEIST_ISLAND_GUERILLA_3
, MASK_ISLAND_HEIST_ISLAND_GUERILLA_4
, MASK_ISLAND_HEIST_ISLAND_GUERILLA_5
, MASK_ISLAND_HEIST_ISLAND_GUERILLA_6
, MASK_ISLAND_HEIST_ISLAND_GUERILLA_7
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY_0
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY_1
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY_2
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY_3
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY_4
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY_5
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY_6
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY_7
, MASK_TUNER_STARS_AND_STRIPES_FALSE_FACE
, MASK_TUNER_GREEN_PATTERN_FALSE_FACE
,OUTFIT_MAX_MASKS
ENDENUM
ENUM HEIST_MASK
MASK_NONE = -1,
MASK_AMATEUR,
MASK_ANIMALS,
MASK_PAPER_BAGS,
MASK_BEASTS,
MASK_CHARACTERS,
MASK_CLASSIC_MONSTERS,
MASK_CARNIVAL,
MASK_GAS_MASKS,
MASK_HELMETS,
MASK_HORROR_HOCKEY,
MASK_PUPPETS,
MASK_SKULLS,
MASK_TACTICAL,
MASK_TAPES,
MASK_THEATRICAL,
MASK_PIGS,
MASK_DUCT_TAPE,
MASK_INCOGNITO,
MASK_BALACLAVAS,
MASK_CAMO,
MASK_PSYCHOTIC,
MASK_STREET,
MASK_BANDANAS,
MASK_HOODS,
MASK_DESIGNER
, MASK_DEVILISH
, MASK_SADISTIC
, MASK_POSSESSED
, MASK_FIENDS
, MASK_CREATURES
, MASK_WICKED
, MASK_CASINO_HEIST_DEFAULT
, MASK_CASINO_HEIST_GEOMETRIC
, MASK_CASINO_HEIST_HUNTER
, MASK_CASINO_HEIST_ONIHALF
, MASK_CASINO_HEIST_EMOJI
, MASK_CASINO_HEIST_ORNATE_SKULL
, MASK_CASINO_HEIST_LUCKY_FRUITS
, MASK_CASINO_HEIST_GUERILLA
, MASK_CASINO_HEIST_CLOWNS
, MASK_CASINO_HEIST_ANIMALS
, MASK_CASINO_HEIST_RIOT
, MASK_CASINO_HEIST_ONIFULL
, MASK_CASINO_HEIST_HOCKEY
, MASK_ISLAND_HEIST_BRANDED_HALF
, MASK_ISLAND_HEIST_PAINTED_FULL
, MASK_ISLAND_HEIST_CAMO_SPEC
, MASK_ISLAND_HEIST_NECK_GAITERS
, MASK_ISLAND_HEIST_FACE_WRAPS
, MASK_ISLAND_HEIST_NIGHT_OPS
, MASK_ISLAND_HEIST_NIGHT_VISION
, MASK_ISLAND_HEIST_CAMO_HALF
, MASK_ISLAND_HEIST_MONO_NIGHT_VISION
, MASK_ISLAND_HEIST_ISLAND_GUERILLA
, MASK_ISLAND_HEIST_PATTERNED_HOCKEY
, MASK_MAX
ENDENUM
ENUM PRELOAD_OUTFIT_STAGE
POS_REQUEST = 0,
POS_CHECK,
POS_LOADED
ENDENUM
ENUM APPLY_OUTFIT_STAGE
AOS_PRELOAD = 0
,AOS_SET
,AOS_STREAM_REQ
ENDENUM
STRUCT MP_OUTFITS_APPLY_DATA
PED_INDEX pedID
MP_OUTFIT_ENUM eOutfit = OUTFIT_MP_DEFAULT
MP_OUTFIT_MASK_ENUM eMask = OUTFIT_MASK_NONE
MP_HEIST_GEAR_ENUM eGear = HEIST_GEAR_NONE
MP_HEIST_GEAR_ENUM eGearEar = HEIST_GEAR_NONE
PRELOAD_OUTFIT_STAGE ePreloadStage = POS_REQUEST
APPLY_OUTFIT_STAGE eApplyStage = AOS_PRELOAD
bool bOutfitPrevSet = false
INT iPlayerIndex = INVALID_HEIST_DATA
INT iPlayerTattoos[NUMBER_OF_CURRENT_TATTOO_STATS]
ENDSTRUCT
#IF IS_DEBUG_BUILD
FUNC STRING GET_MP_OUTFIT_NAME_FROM_ENUM(MP_OUTFIT_ENUM eOutfit)
SWITCH eOutfit
CASE OUTFIT_MP_DEFAULT RETURN "OUTFIT_MP_DEFAULT" BREAK
CASE OUTFIT_MP_FREEMODE RETURN "OUTFIT_MP_FREEMODE" BREAK
CASE OUTFIT_HEIST_CASUAL_0 RETURN "OUTFIT_HEIST_CASUAL_0" BREAK
CASE OUTFIT_HEIST_CASUAL_1 RETURN "OUTFIT_HEIST_CASUAL_1" BREAK
CASE OUTFIT_HEIST_CASUAL_2 RETURN "OUTFIT_HEIST_CASUAL_2" BREAK
CASE OUTFIT_HEIST_CASUAL_3 RETURN "OUTFIT_HEIST_CASUAL_3" BREAK
CASE OUTFIT_HEIST_STREET_0 RETURN "OUTFIT_HEIST_STREET_0" BREAK
CASE OUTFIT_HEIST_STREET_1 RETURN "OUTFIT_HEIST_STREET_1" BREAK
CASE OUTFIT_HEIST_STREET_2 RETURN "OUTFIT_HEIST_STREET_2" BREAK
CASE OUTFIT_HEIST_STREET_3 RETURN "OUTFIT_HEIST_STREET_3" BREAK
CASE OUTFIT_HEIST_STREET_COMBAT_0 RETURN "OUTFIT_HEIST_STREET_COMBAT_0" BREAK
CASE OUTFIT_HEIST_STREET_COMBAT_1 RETURN "OUTFIT_HEIST_STREET_COMBAT_1" BREAK
CASE OUTFIT_HEIST_STREET_COMBAT_2 RETURN "OUTFIT_HEIST_STREET_COMBAT_2" BREAK
CASE OUTFIT_HEIST_STREET_COMBAT_3 RETURN "OUTFIT_HEIST_STREET_COMBAT_3" BREAK
CASE OUTFIT_HEIST_LIGHT_COMBAT_0 RETURN "OUTFIT_HEIST_LIGHT_COMBAT_0" BREAK
CASE OUTFIT_HEIST_LIGHT_COMBAT_1 RETURN "OUTFIT_HEIST_LIGHT_COMBAT_1" BREAK
CASE OUTFIT_HEIST_LIGHT_COMBAT_2 RETURN "OUTFIT_HEIST_LIGHT_COMBAT_2" BREAK
CASE OUTFIT_HEIST_LIGHT_COMBAT_3 RETURN "OUTFIT_HEIST_LIGHT_COMBAT_3" BREAK
CASE OUTFIT_HEIST_HEAVY_COMBAT_0 RETURN "OUTFIT_HEIST_HEAVY_COMBAT_0" BREAK
CASE OUTFIT_HEIST_HEAVY_COMBAT_1 RETURN "OUTFIT_HEIST_HEAVY_COMBAT_1" BREAK
CASE OUTFIT_HEIST_HEAVY_COMBAT_2 RETURN "OUTFIT_HEIST_HEAVY_COMBAT_2" BREAK
CASE OUTFIT_HEIST_HEAVY_COMBAT_3 RETURN "OUTFIT_HEIST_HEAVY_COMBAT_3" BREAK
CASE OUTFIT_HEIST_CASUAL_STEALTH_0 RETURN "OUTFIT_HEIST_CASUAL_STEALTH_0" BREAK
CASE OUTFIT_HEIST_CASUAL_STEALTH_1 RETURN "OUTFIT_HEIST_CASUAL_STEALTH_1" BREAK
CASE OUTFIT_HEIST_CASUAL_STEALTH_2 RETURN "OUTFIT_HEIST_CASUAL_STEALTH_2" BREAK
CASE OUTFIT_HEIST_CASUAL_STEALTH_3 RETURN "OUTFIT_HEIST_CASUAL_STEALTH_3" BREAK
CASE OUTFIT_HEIST_TACTICAL_STEALTH_0 RETURN "OUTFIT_HEIST_TACTICAL_STEALTH_0" BREAK
CASE OUTFIT_HEIST_TACTICAL_STEALTH_1 RETURN "OUTFIT_HEIST_TACTICAL_STEALTH_1" BREAK
CASE OUTFIT_HEIST_TACTICAL_STEALTH_2 RETURN "OUTFIT_HEIST_TACTICAL_STEALTH_2" BREAK
CASE OUTFIT_HEIST_TACTICAL_STEALTH_3 RETURN "OUTFIT_HEIST_TACTICAL_STEALTH_3" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_HEIST_STEALTH_PILOT_0 RETURN "OUTFIT_HEIST_STEALTH_PILOT_0" BREAK
CASE OUTFIT_HEIST_STEALTH_PILOT_1 RETURN "OUTFIT_HEIST_STEALTH_PILOT_1" BREAK
CASE OUTFIT_HEIST_STEALTH_PILOT_2 RETURN "OUTFIT_HEIST_STEALTH_PILOT_2" BREAK
CASE OUTFIT_HEIST_STEALTH_PILOT_3 RETURN "OUTFIT_HEIST_STEALTH_PILOT_3" BREAK
CASE OUTFIT_HEIST_CASUAL_PILOT_0 RETURN "OUTFIT_HEIST_CASUAL_PILOT_0" BREAK
CASE OUTFIT_HEIST_CASUAL_PILOT_1 RETURN "OUTFIT_HEIST_CASUAL_PILOT_1" BREAK
CASE OUTFIT_HEIST_CASUAL_PILOT_2 RETURN "OUTFIT_HEIST_CASUAL_PILOT_2" BREAK
CASE OUTFIT_HEIST_DRIVER_0 RETURN "OUTFIT_HEIST_DRIVER_0" BREAK
CASE OUTFIT_HEIST_DRIVER_1 RETURN "OUTFIT_HEIST_DRIVER_1" BREAK
CASE OUTFIT_HEIST_DRIVER_2 RETURN "OUTFIT_HEIST_DRIVER_2" BREAK
CASE OUTFIT_HEIST_DRIVER_3 RETURN "OUTFIT_HEIST_DRIVER_3" BREAK
CASE OUTFIT_HEIST_SMART_SUITS_0 RETURN "OUTFIT_HEIST_SMART_SUITS_0" BREAK
CASE OUTFIT_HEIST_SMART_SUITS_1 RETURN "OUTFIT_HEIST_SMART_SUITS_1" BREAK
CASE OUTFIT_HEIST_SMART_SUITS_2 RETURN "OUTFIT_HEIST_SMART_SUITS_2" BREAK
CASE OUTFIT_HEIST_SMART_SUITS_3 RETURN "OUTFIT_HEIST_SMART_SUITS_3" BREAK
CASE OUTFIT_HEIST_SHARP_SUITS_0 RETURN "OUTFIT_HEIST_SHARP_SUITS_0" BREAK
CASE OUTFIT_HEIST_SHARP_SUITS_1 RETURN "OUTFIT_HEIST_SHARP_SUITS_1" BREAK
CASE OUTFIT_HEIST_SHARP_SUITS_2 RETURN "OUTFIT_HEIST_SHARP_SUITS_2" BREAK
CASE OUTFIT_HEIST_SHARP_SUITS_3 RETURN "OUTFIT_HEIST_SHARP_SUITS_3" BREAK
CASE OUTFIT_HEIST_SLOPPY_SUITS_0 RETURN "OUTFIT_HEIST_SLOPPY_SUITS_0" BREAK
CASE OUTFIT_HEIST_SLOPPY_SUITS_1 RETURN "OUTFIT_HEIST_SLOPPY_SUITS_1" BREAK
CASE OUTFIT_HEIST_SLOPPY_SUITS_2 RETURN "OUTFIT_HEIST_SLOPPY_SUITS_2" BREAK
CASE OUTFIT_HEIST_SLOPPY_SUITS_3 RETURN "OUTFIT_HEIST_SLOPPY_SUITS_3" BREAK
CASE OUTFIT_HEIST_MINIMALIST_SUITS_0 RETURN "OUTFIT_HEIST_MINIMALIST_SUITS_0" BREAK
CASE OUTFIT_HEIST_MINIMALIST_SUITS_1 RETURN "OUTFIT_HEIST_MINIMALIST_SUITS_1" BREAK
CASE OUTFIT_HEIST_MINIMALIST_SUITS_2 RETURN "OUTFIT_HEIST_MINIMALIST_SUITS_2" BREAK
CASE OUTFIT_HEIST_MINIMALIST_SUITS_3 RETURN "OUTFIT_HEIST_MINIMALIST_SUITS_3" BREAK
CASE OUTFIT_HEIST_TUXEDOS_0 RETURN "OUTFIT_HEIST_TUXEDOS_0" BREAK
CASE OUTFIT_HEIST_TUXEDOS_1 RETURN "OUTFIT_HEIST_TUXEDOS_1" BREAK
CASE OUTFIT_HEIST_TUXEDOS_2 RETURN "OUTFIT_HEIST_TUXEDOS_2" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_HEIST_TUXEDOS_3 RETURN "OUTFIT_HEIST_TUXEDOS_3" BREAK
CASE OUTFIT_HEIST_NIGHT_BIKER_0 RETURN "OUTFIT_HEIST_NIGHT_BIKER_0" BREAK
CASE OUTFIT_HEIST_NIGHT_BIKER_1 RETURN "OUTFIT_HEIST_NIGHT_BIKER_1" BREAK
CASE OUTFIT_HEIST_NIGHT_BIKER_2 RETURN "OUTFIT_HEIST_NIGHT_BIKER_2" BREAK
CASE OUTFIT_HEIST_NIGHT_BIKER_3 RETURN "OUTFIT_HEIST_NIGHT_BIKER_3" BREAK
CASE OUTFIT_HEIST_REFUSE_COLLECTOR_0 RETURN "OUTFIT_HEIST_REFUSE_COLLECTOR_0" BREAK
CASE OUTFIT_HEIST_REFUSE_COLLECTOR_1 RETURN "OUTFIT_HEIST_REFUSE_COLLECTOR_1" BREAK
CASE OUTFIT_HEIST_POLICE_0 RETURN "OUTFIT_HEIST_POLICE_0" BREAK
CASE OUTFIT_HEIST_PRISONER_0 RETURN "OUTFIT_HEIST_PRISONER_0" BREAK
CASE OUTFIT_HEIST_PRISON_OFFICER_0 RETURN "OUTFIT_HEIST_PRISON_OFFICER_0" BREAK
CASE OUTFIT_HEIST_TOURIST_0 RETURN "OUTFIT_HEIST_TOURIST_0" BREAK
CASE OUTFIT_HEIST_TOURIST_1 RETURN "OUTFIT_HEIST_TOURIST_1" BREAK
CASE OUTFIT_HEIST_TOURIST_2 RETURN "OUTFIT_HEIST_TOURIST_2" BREAK
CASE OUTFIT_HEIST_TOURIST_3 RETURN "OUTFIT_HEIST_TOURIST_3" BREAK
CASE OUTFIT_HEIST_HAZCHEM_0 RETURN "OUTFIT_HEIST_HAZCHEM_0" BREAK
CASE OUTFIT_HEIST_HAZCHEM_1 RETURN "OUTFIT_HEIST_HAZCHEM_1" BREAK
CASE OUTFIT_HEIST_HAZCHEM_2 RETURN "OUTFIT_HEIST_HAZCHEM_2" BREAK
CASE OUTFIT_HEIST_HAZCHEM_3 RETURN "OUTFIT_HEIST_HAZCHEM_3" BREAK
CASE OUTFIT_HEIST_COVERALLS_0 RETURN "OUTFIT_HEIST_COVERALLS_0" BREAK
CASE OUTFIT_HEIST_COVERALLS_1 RETURN "OUTFIT_HEIST_COVERALLS_1" BREAK
CASE OUTFIT_HEIST_COVERALLS_2 RETURN "OUTFIT_HEIST_COVERALLS_2" BREAK
CASE OUTFIT_HEIST_COVERALLS_3 RETURN "OUTFIT_HEIST_COVERALLS_3" BREAK
CASE OUTFIT_HEIST_FLIGHT_SUIT_0 RETURN "OUTFIT_HEIST_FLIGHT_SUIT_0" BREAK
CASE OUTFIT_HEIST_FLIGHT_SUIT_1 RETURN "OUTFIT_HEIST_FLIGHT_SUIT_1" BREAK
CASE OUTFIT_HEIST_FLIGHT_SUIT_2 RETURN "OUTFIT_HEIST_FLIGHT_SUIT_2" BREAK
CASE OUTFIT_HEIST_FLIGHT_SUIT_3 RETURN "OUTFIT_HEIST_FLIGHT_SUIT_3" BREAK
CASE OUTFIT_RAPUNZEL_ATTACK RETURN "OUTFIT_RAPUNZEL_ATTACK" BREAK
CASE OUTFIT_RAPUNZEL_DEFEND RETURN "OUTFIT_RAPUNZEL_DEFEND" BREAK
CASE OUTFIT_T_MASKED_NIGHT RETURN "OUTFIT_T_MASKED_NIGHT" BREAK
CASE OUTFIT_T_MASKED_TUNDRA RETURN "OUTFIT_T_MASKED_TUNDRA" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_T_MASKED_FOREST RETURN "OUTFIT_T_MASKED_FOREST" BREAK
CASE OUTFIT_FOXHUNT_FOX RETURN "OUTFIT_FOXHUNT_FOX" BREAK
CASE OUTFIT_FOXHUNT_FOX_ALT RETURN "OUTFIT_FOXHUNT_FOX_ALT" BREAK
CASE OUTFIT_FOXHUNT_HOUND RETURN "OUTFIT_FOXHUNT_HOUND" BREAK
CASE OUTFIT_PRISON_POLICE_OFFICER_VS RETURN "OUTFIT_PRISON_POLICE_OFFICER_VS" BREAK
CASE OUTFIT_PRISON_PRISONER_VS RETURN "OUTFIT_PRISON_PRISONER_VS" BREAK
CASE OUTFIT_MASK_BALACLAVAFULL RETURN "OUTFIT_MASK_BALACLAVAFULL" BREAK
CASE OUTFIT_MASK_REBREATHER RETURN "OUTFIT_MASK_REBREATHER" BREAK
CASE OUTFIT_MASK_BALACLAVA RETURN "OUTFIT_MASK_BALACLAVA" BREAK
CASE OUTFIT_MASK_GASMASK RETURN "OUTFIT_MASK_GASMASK" BREAK
CASE OUTFIT_MASK_PIG RETURN "OUTFIT_MASK_PIG" BREAK
CASE OUTFIT_MASK_BIGSKULL RETURN "OUTFIT_MASK_BIGSKULL" BREAK
CASE OUTFIT_MASK_MONKEYSMOKING RETURN "OUTFIT_MASK_MONKEYSMOKING" BREAK
CASE OUTFIT_MASK_HOCKEYJASON RETURN "OUTFIT_MASK_HOCKEYJASON" BREAK
CASE OUTFIT_MASK_APE RETURN "OUTFIT_MASK_APE" BREAK
CASE OUTFIT_MASK_CARNIVAL RETURN "OUTFIT_MASK_CARNIVAL" BREAK
CASE OUTFIT_MASK_GOBLIN RETURN "OUTFIT_MASK_GOBLIN" BREAK
CASE OUTFIT_MASK_SANTA RETURN "OUTFIT_MASK_SANTA" BREAK
CASE OUTFIT_MASK_CREEPYMOOSE RETURN "OUTFIT_MASK_CREEPYMOOSE" BREAK
CASE OUTFIT_MASK_SNOWMANHEAD RETURN "OUTFIT_MASK_SNOWMANHEAD" BREAK
CASE OUTFIT_MASK_MASQUERADEEYES RETURN "OUTFIT_MASK_MASQUERADEEYES" BREAK
CASE OUTFIT_MASK_MASQUERADENOSEY RETURN "OUTFIT_MASK_MASQUERADENOSEY" BREAK
CASE OUTFIT_MASK_CREEPYBABY RETURN "OUTFIT_MASK_CREEPYBABY" BREAK
CASE OUTFIT_MASK_HOCKEYBLUE RETURN "OUTFIT_MASK_HOCKEYBLUE" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_MASK_HOCKEYSKULL RETURN "OUTFIT_MASK_HOCKEYSKULL" BREAK
CASE OUTFIT_MASK_WARRIOR RETURN "OUTFIT_MASK_WARRIOR" BREAK
CASE OUTFIT_MASK_CAT RETURN "OUTFIT_MASK_CAT" BREAK
CASE OUTFIT_MASK_FOX RETURN "OUTFIT_MASK_FOX" BREAK
CASE OUTFIT_MASK_OWL RETURN "OUTFIT_MASK_OWL" BREAK
CASE OUTFIT_MASK_RACCOON RETURN "OUTFIT_MASK_RACCOON" BREAK
CASE OUTFIT_MASK_BROWNBEAR RETURN "OUTFIT_MASK_BROWNBEAR" BREAK
CASE OUTFIT_MASK_BISON RETURN "OUTFIT_MASK_BISON" BREAK
CASE OUTFIT_MASK_BULL RETURN "OUTFIT_MASK_BULL" BREAK
CASE OUTFIT_MASK_EAGLE RETURN "OUTFIT_MASK_EAGLE" BREAK
CASE OUTFIT_MASK_VULTURE RETURN "OUTFIT_MASK_VULTURE" BREAK
CASE OUTFIT_MASK_WOLF RETURN "OUTFIT_MASK_WOLF" BREAK
CASE OUTFIT_HOS_SUIT RETURN "OUTFIT_HOS_SUIT" BREAK
CASE OUTFIT_REFUSE_COLLECTOR RETURN "OUTFIT_REFUSE_COLLECTOR" BREAK
CASE OUTFIT_VERSUS_CLASSIC_JUNGLE_0 RETURN "OUTFIT_VERSUS_CLASSIC_JUNGLE_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_JUNGLE_1 RETURN "OUTFIT_VERSUS_CLASSIC_JUNGLE_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_JUNGLE_2 RETURN "OUTFIT_VERSUS_CLASSIC_JUNGLE_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_JUNGLE_3 RETURN "OUTFIT_VERSUS_CLASSIC_JUNGLE_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_JUNGLE_4 RETURN "OUTFIT_VERSUS_CLASSIC_JUNGLE_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_JUNGLE_5 RETURN "OUTFIT_VERSUS_CLASSIC_JUNGLE_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STEEL_0 RETURN "OUTFIT_VERSUS_CLASSIC_STEEL_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STEEL_1 RETURN "OUTFIT_VERSUS_CLASSIC_STEEL_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STEEL_2 RETURN "OUTFIT_VERSUS_CLASSIC_STEEL_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STEEL_3 RETURN "OUTFIT_VERSUS_CLASSIC_STEEL_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STEEL_4 RETURN "OUTFIT_VERSUS_CLASSIC_STEEL_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STEEL_5 RETURN "OUTFIT_VERSUS_CLASSIC_STEEL_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STREET_0 RETURN "OUTFIT_VERSUS_CLASSIC_STREET_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STREET_1 RETURN "OUTFIT_VERSUS_CLASSIC_STREET_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STREET_2 RETURN "OUTFIT_VERSUS_CLASSIC_STREET_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STREET_3 RETURN "OUTFIT_VERSUS_CLASSIC_STREET_3" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_CLASSIC_STREET_4 RETURN "OUTFIT_VERSUS_CLASSIC_STREET_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STREET_5 RETURN "OUTFIT_VERSUS_CLASSIC_STREET_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_0 RETURN "OUTFIT_VERSUS_CLASSIC_TACTICAL_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_1 RETURN "OUTFIT_VERSUS_CLASSIC_TACTICAL_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_2 RETURN "OUTFIT_VERSUS_CLASSIC_TACTICAL_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_3 RETURN "OUTFIT_VERSUS_CLASSIC_TACTICAL_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_4 RETURN "OUTFIT_VERSUS_CLASSIC_TACTICAL_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_5 RETURN "OUTFIT_VERSUS_CLASSIC_TACTICAL_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DUNE_0 RETURN "OUTFIT_VERSUS_CLASSIC_DUNE_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DUNE_1 RETURN "OUTFIT_VERSUS_CLASSIC_DUNE_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DUNE_2 RETURN "OUTFIT_VERSUS_CLASSIC_DUNE_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DUNE_3 RETURN "OUTFIT_VERSUS_CLASSIC_DUNE_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DUNE_4 RETURN "OUTFIT_VERSUS_CLASSIC_DUNE_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DUNE_5 RETURN "OUTFIT_VERSUS_CLASSIC_DUNE_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_0 RETURN "OUTFIT_VERSUS_CLASSIC_SWAMP_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_1 RETURN "OUTFIT_VERSUS_CLASSIC_SWAMP_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_2 RETURN "OUTFIT_VERSUS_CLASSIC_SWAMP_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_3 RETURN "OUTFIT_VERSUS_CLASSIC_SWAMP_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_4 RETURN "OUTFIT_VERSUS_CLASSIC_SWAMP_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_5 RETURN "OUTFIT_VERSUS_CLASSIC_SWAMP_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_FAMILIES_0 RETURN "OUTFIT_VERSUS_CLASSIC_FAMILIES_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_FAMILIES_1 RETURN "OUTFIT_VERSUS_CLASSIC_FAMILIES_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_FAMILIES_2 RETURN "OUTFIT_VERSUS_CLASSIC_FAMILIES_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_FAMILIES_3 RETURN "OUTFIT_VERSUS_CLASSIC_FAMILIES_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_FAMILIES_4 RETURN "OUTFIT_VERSUS_CLASSIC_FAMILIES_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_FAMILIES_5 RETURN "OUTFIT_VERSUS_CLASSIC_FAMILIES_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BALLAS_0 RETURN "OUTFIT_VERSUS_CLASSIC_BALLAS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BALLAS_1 RETURN "OUTFIT_VERSUS_CLASSIC_BALLAS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BALLAS_2 RETURN "OUTFIT_VERSUS_CLASSIC_BALLAS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BALLAS_3 RETURN "OUTFIT_VERSUS_CLASSIC_BALLAS_3" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_CLASSIC_BALLAS_4 RETURN "OUTFIT_VERSUS_CLASSIC_BALLAS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BALLAS_5 RETURN "OUTFIT_VERSUS_CLASSIC_BALLAS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_HITMEN_0 RETURN "OUTFIT_VERSUS_CLASSIC_HITMEN_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_HITMEN_1 RETURN "OUTFIT_VERSUS_CLASSIC_HITMEN_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_HITMEN_2 RETURN "OUTFIT_VERSUS_CLASSIC_HITMEN_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_HITMEN_3 RETURN "OUTFIT_VERSUS_CLASSIC_HITMEN_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_HITMEN_4 RETURN "OUTFIT_VERSUS_CLASSIC_HITMEN_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_HITMEN_5 RETURN "OUTFIT_VERSUS_CLASSIC_HITMEN_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ASSASSINS_0 RETURN "OUTFIT_VERSUS_CLASSIC_ASSASSINS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ASSASSINS_1 RETURN "OUTFIT_VERSUS_CLASSIC_ASSASSINS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ASSASSINS_2 RETURN "OUTFIT_VERSUS_CLASSIC_ASSASSINS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ASSASSINS_3 RETURN "OUTFIT_VERSUS_CLASSIC_ASSASSINS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ASSASSINS_4 RETURN "OUTFIT_VERSUS_CLASSIC_ASSASSINS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ASSASSINS_5 RETURN "OUTFIT_VERSUS_CLASSIC_ASSASSINS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COPS_0 RETURN "OUTFIT_VERSUS_CLASSIC_COPS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COPS_1 RETURN "OUTFIT_VERSUS_CLASSIC_COPS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COPS_2 RETURN "OUTFIT_VERSUS_CLASSIC_COPS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COPS_3 RETURN "OUTFIT_VERSUS_CLASSIC_COPS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COPS_4 RETURN "OUTFIT_VERSUS_CLASSIC_COPS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COPS_5 RETURN "OUTFIT_VERSUS_CLASSIC_COPS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CRIMINALS_0 RETURN "OUTFIT_VERSUS_CLASSIC_CRIMINALS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CRIMINALS_1 RETURN "OUTFIT_VERSUS_CLASSIC_CRIMINALS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CRIMINALS_2 RETURN "OUTFIT_VERSUS_CLASSIC_CRIMINALS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CRIMINALS_3 RETURN "OUTFIT_VERSUS_CLASSIC_CRIMINALS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CRIMINALS_4 RETURN "OUTFIT_VERSUS_CLASSIC_CRIMINALS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CRIMINALS_5 RETURN "OUTFIT_VERSUS_CLASSIC_CRIMINALS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_0 RETURN "OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_1 RETURN "OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_2 RETURN "OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_3 RETURN "OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_3" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_4 RETURN "OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_5 RETURN "OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIKERS_0 RETURN "OUTFIT_VERSUS_CLASSIC_BIKERS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIKERS_1 RETURN "OUTFIT_VERSUS_CLASSIC_BIKERS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIKERS_2 RETURN "OUTFIT_VERSUS_CLASSIC_BIKERS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIKERS_3 RETURN "OUTFIT_VERSUS_CLASSIC_BIKERS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIKERS_4 RETURN "OUTFIT_VERSUS_CLASSIC_BIKERS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIKERS_5 RETURN "OUTFIT_VERSUS_CLASSIC_BIKERS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BLACK_TUX_0 RETURN "OUTFIT_VERSUS_CLASSIC_BLACK_TUX_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_WHITE_TUX_0 RETURN "OUTFIT_VERSUS_CLASSIC_WHITE_TUX_0" BREAK
CASE OUTFIT_VERSUS_THEMED_SLASHERS_0 RETURN "OUTFIT_VERSUS_THEMED_SLASHERS_0" BREAK
CASE OUTFIT_VERSUS_THEMED_SLASHERS_1 RETURN "OUTFIT_VERSUS_THEMED_SLASHERS_1" BREAK
CASE OUTFIT_VERSUS_THEMED_SLASHERS_2 RETURN "OUTFIT_VERSUS_THEMED_SLASHERS_2" BREAK
CASE OUTFIT_VERSUS_THEMED_SLASHERS_3 RETURN "OUTFIT_VERSUS_THEMED_SLASHERS_3" BREAK
CASE OUTFIT_VERSUS_THEMED_SLASHERS_4 RETURN "OUTFIT_VERSUS_THEMED_SLASHERS_4" BREAK
CASE OUTFIT_VERSUS_THEMED_SLASHERS_5 RETURN "OUTFIT_VERSUS_THEMED_SLASHERS_5" BREAK
CASE OUTFIT_VERSUS_THEMED_BUBBLEGUMS_0 RETURN "OUTFIT_VERSUS_THEMED_BUBBLEGUMS_0" BREAK
CASE OUTFIT_VERSUS_THEMED_BUBBLEGUMS_1 RETURN "OUTFIT_VERSUS_THEMED_BUBBLEGUMS_1" BREAK
CASE OUTFIT_VERSUS_THEMED_BUBBLEGUMS_2 RETURN "OUTFIT_VERSUS_THEMED_BUBBLEGUMS_2" BREAK
CASE OUTFIT_VERSUS_THEMED_BUBBLEGUMS_3 RETURN "OUTFIT_VERSUS_THEMED_BUBBLEGUMS_3" BREAK
CASE OUTFIT_VERSUS_THEMED_BUBBLEGUMS_4 RETURN "OUTFIT_VERSUS_THEMED_BUBBLEGUMS_4" BREAK
CASE OUTFIT_VERSUS_THEMED_BUBBLEGUMS_5 RETURN "OUTFIT_VERSUS_THEMED_BUBBLEGUMS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STINKERS_0 RETURN "OUTFIT_VERSUS_CLASSIC_STINKERS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STINKERS_1 RETURN "OUTFIT_VERSUS_CLASSIC_STINKERS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STINKERS_2 RETURN "OUTFIT_VERSUS_CLASSIC_STINKERS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STINKERS_3 RETURN "OUTFIT_VERSUS_CLASSIC_STINKERS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STINKERS_4 RETURN "OUTFIT_VERSUS_CLASSIC_STINKERS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_STINKERS_5 RETURN "OUTFIT_VERSUS_CLASSIC_STINKERS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_WIMPEES_0 RETURN "OUTFIT_VERSUS_CLASSIC_WIMPEES_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DEVILS_0 RETURN "OUTFIT_VERSUS_CLASSIC_DEVILS_0" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_CLASSIC_DEVILS_1 RETURN "OUTFIT_VERSUS_CLASSIC_DEVILS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DEVILS_2 RETURN "OUTFIT_VERSUS_CLASSIC_DEVILS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DEVILS_3 RETURN "OUTFIT_VERSUS_CLASSIC_DEVILS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DEVILS_4 RETURN "OUTFIT_VERSUS_CLASSIC_DEVILS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_DEVILS_5 RETURN "OUTFIT_VERSUS_CLASSIC_DEVILS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ANGELS_0 RETURN "OUTFIT_VERSUS_CLASSIC_ANGELS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ANGELS_1 RETURN "OUTFIT_VERSUS_CLASSIC_ANGELS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ANGELS_2 RETURN "OUTFIT_VERSUS_CLASSIC_ANGELS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ANGELS_3 RETURN "OUTFIT_VERSUS_CLASSIC_ANGELS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ANGELS_4 RETURN "OUTFIT_VERSUS_CLASSIC_ANGELS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ANGELS_5 RETURN "OUTFIT_VERSUS_CLASSIC_ANGELS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MONKEYS_0 RETURN "OUTFIT_VERSUS_CLASSIC_MONKEYS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MONKEYS_1 RETURN "OUTFIT_VERSUS_CLASSIC_MONKEYS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MONKEYS_2 RETURN "OUTFIT_VERSUS_CLASSIC_MONKEYS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MONKEYS_3 RETURN "OUTFIT_VERSUS_CLASSIC_MONKEYS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MONKEYS_4 RETURN "OUTFIT_VERSUS_CLASSIC_MONKEYS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MONKEYS_5 RETURN "OUTFIT_VERSUS_CLASSIC_MONKEYS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SCIENTISTS_0 RETURN "OUTFIT_VERSUS_CLASSIC_SCIENTISTS_0" BREAK
// CASE OUTFIT_VERSUS_CLASSIC_SCIENTISTS_1 RETURN "OUTFIT_VERSUS_CLASSIC_SCIENTISTS_1" BREAK
// CASE OUTFIT_VERSUS_CLASSIC_SCIENTISTS_2 RETURN "OUTFIT_VERSUS_CLASSIC_SCIENTISTS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SCIENTISTS_3 RETURN "OUTFIT_VERSUS_CLASSIC_SCIENTISTS_3" BREAK
// CASE OUTFIT_VERSUS_CLASSIC_SCIENTISTS_4 RETURN "OUTFIT_VERSUS_CLASSIC_SCIENTISTS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_SCIENTISTS_5 RETURN "OUTFIT_VERSUS_CLASSIC_SCIENTISTS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CATS_0 RETURN "OUTFIT_VERSUS_CLASSIC_CATS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CATS_1 RETURN "OUTFIT_VERSUS_CLASSIC_CATS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CATS_2 RETURN "OUTFIT_VERSUS_CLASSIC_CATS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CATS_3 RETURN "OUTFIT_VERSUS_CLASSIC_CATS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CATS_4 RETURN "OUTFIT_VERSUS_CLASSIC_CATS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_CATS_5 RETURN "OUTFIT_VERSUS_CLASSIC_CATS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIRDS_0 RETURN "OUTFIT_VERSUS_CLASSIC_BIRDS_0" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_CLASSIC_BIRDS_1 RETURN "OUTFIT_VERSUS_CLASSIC_BIRDS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIRDS_2 RETURN "OUTFIT_VERSUS_CLASSIC_BIRDS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIRDS_3 RETURN "OUTFIT_VERSUS_CLASSIC_BIRDS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIRDS_4 RETURN "OUTFIT_VERSUS_CLASSIC_BIRDS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BIRDS_5 RETURN "OUTFIT_VERSUS_CLASSIC_BIRDS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BLUE_0 RETURN "OUTFIT_VERSUS_CLASSIC_BLUE_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BLUE_1 RETURN "OUTFIT_VERSUS_CLASSIC_BLUE_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BLUE_2 RETURN "OUTFIT_VERSUS_CLASSIC_BLUE_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BLUE_3 RETURN "OUTFIT_VERSUS_CLASSIC_BLUE_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BLUE_4 RETURN "OUTFIT_VERSUS_CLASSIC_BLUE_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_BLUE_5 RETURN "OUTFIT_VERSUS_CLASSIC_BLUE_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ORANGE_0 RETURN "OUTFIT_VERSUS_CLASSIC_ORANGE_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ORANGE_1 RETURN "OUTFIT_VERSUS_CLASSIC_ORANGE_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ORANGE_2 RETURN "OUTFIT_VERSUS_CLASSIC_ORANGE_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ORANGE_3 RETURN "OUTFIT_VERSUS_CLASSIC_ORANGE_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ORANGE_4 RETURN "OUTFIT_VERSUS_CLASSIC_ORANGE_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ORANGE_5 RETURN "OUTFIT_VERSUS_CLASSIC_ORANGE_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_WEREWOLVES_0 RETURN "OUTFIT_VERSUS_CLASSIC_WEREWOLVES_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_WEREWOLVES_1 RETURN "OUTFIT_VERSUS_CLASSIC_WEREWOLVES_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_WEREWOLVES_2 RETURN "OUTFIT_VERSUS_CLASSIC_WEREWOLVES_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_WEREWOLVES_3 RETURN "OUTFIT_VERSUS_CLASSIC_WEREWOLVES_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_WEREWOLVES_4 RETURN "OUTFIT_VERSUS_CLASSIC_WEREWOLVES_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_WEREWOLVES_5 RETURN "OUTFIT_VERSUS_CLASSIC_WEREWOLVES_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MUMMIES_0 RETURN "OUTFIT_VERSUS_CLASSIC_MUMMIES_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MUMMIES_1 RETURN "OUTFIT_VERSUS_CLASSIC_MUMMIES_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MUMMIES_2 RETURN "OUTFIT_VERSUS_CLASSIC_MUMMIES_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MUMMIES_3 RETURN "OUTFIT_VERSUS_CLASSIC_MUMMIES_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MUMMIES_4 RETURN "OUTFIT_VERSUS_CLASSIC_MUMMIES_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_MUMMIES_5 RETURN "OUTFIT_VERSUS_CLASSIC_MUMMIES_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_RAVENS_0 RETURN "OUTFIT_VERSUS_CLASSIC_RAVENS_0" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_CLASSIC_RAVENS_1 RETURN "OUTFIT_VERSUS_CLASSIC_RAVENS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_RAVENS_2 RETURN "OUTFIT_VERSUS_CLASSIC_RAVENS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_RAVENS_3 RETURN "OUTFIT_VERSUS_CLASSIC_RAVENS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_RAVENS_4 RETURN "OUTFIT_VERSUS_CLASSIC_RAVENS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_RAVENS_5 RETURN "OUTFIT_VERSUS_CLASSIC_RAVENS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_GHOULS_0 RETURN "OUTFIT_VERSUS_CLASSIC_GHOULS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_GHOULS_1 RETURN "OUTFIT_VERSUS_CLASSIC_GHOULS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_GHOULS_2 RETURN "OUTFIT_VERSUS_CLASSIC_GHOULS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_GHOULS_3 RETURN "OUTFIT_VERSUS_CLASSIC_GHOULS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_GHOULS_4 RETURN "OUTFIT_VERSUS_CLASSIC_GHOULS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_GHOULS_5 RETURN "OUTFIT_VERSUS_CLASSIC_GHOULS_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ZOMBIES_0 RETURN "OUTFIT_VERSUS_CLASSIC_ZOMBIES_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ZOMBIES_1 RETURN "OUTFIT_VERSUS_CLASSIC_ZOMBIES_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ZOMBIES_2 RETURN "OUTFIT_VERSUS_CLASSIC_ZOMBIES_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ZOMBIES_3 RETURN "OUTFIT_VERSUS_CLASSIC_ZOMBIES_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ZOMBIES_4 RETURN "OUTFIT_VERSUS_CLASSIC_ZOMBIES_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_ZOMBIES_5 RETURN "OUTFIT_VERSUS_CLASSIC_ZOMBIES_5" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COWBOYS_0 RETURN "OUTFIT_VERSUS_CLASSIC_COWBOYS_0" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COWBOYS_1 RETURN "OUTFIT_VERSUS_CLASSIC_COWBOYS_1" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COWBOYS_2 RETURN "OUTFIT_VERSUS_CLASSIC_COWBOYS_2" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COWBOYS_3 RETURN "OUTFIT_VERSUS_CLASSIC_COWBOYS_3" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COWBOYS_4 RETURN "OUTFIT_VERSUS_CLASSIC_COWBOYS_4" BREAK
CASE OUTFIT_VERSUS_CLASSIC_COWBOYS_5 RETURN "OUTFIT_VERSUS_CLASSIC_COWBOYS_5" BREAK
CASE OUTFIT_NG_CASUAL_0 RETURN "OUTFIT_NG_CASUAL_0" BREAK
CASE OUTFIT_NG_CASUAL_1 RETURN "OUTFIT_NG_CASUAL_1" BREAK
CASE OUTFIT_NG_CASUAL_2 RETURN "OUTFIT_NG_CASUAL_2" BREAK
CASE OUTFIT_NG_CASUAL_3 RETURN "OUTFIT_NG_CASUAL_3" BREAK
CASE OUTFIT_NG_CASUAL_4 RETURN "OUTFIT_NG_CASUAL_4" BREAK
CASE OUTFIT_NG_CASUAL_5 RETURN "OUTFIT_NG_CASUAL_5" BREAK
CASE OUTFIT_NG_CASUAL_6 RETURN "OUTFIT_NG_CASUAL_6" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_NG_CASUAL_7 RETURN "OUTFIT_NG_CASUAL_7" BREAK
CASE OUTFIT_NG_STREET_0 RETURN "OUTFIT_NG_STREET_0" BREAK
CASE OUTFIT_NG_STREET_1 RETURN "OUTFIT_NG_STREET_1" BREAK
CASE OUTFIT_NG_STREET_2 RETURN "OUTFIT_NG_STREET_2" BREAK
CASE OUTFIT_NG_STREET_3 RETURN "OUTFIT_NG_STREET_3" BREAK
CASE OUTFIT_NG_STREET_4 RETURN "OUTFIT_NG_STREET_4" BREAK
CASE OUTFIT_NG_STREET_5 RETURN "OUTFIT_NG_STREET_5" BREAK
CASE OUTFIT_NG_STREET_6 RETURN "OUTFIT_NG_STREET_6" BREAK
CASE OUTFIT_NG_STREET_7 RETURN "OUTFIT_NG_STREET_7" BREAK
CASE OUTFIT_NG_FLASHY_0 RETURN "OUTFIT_NG_FLASHY_0" BREAK
CASE OUTFIT_NG_FLASHY_1 RETURN "OUTFIT_NG_FLASHY_1" BREAK
CASE OUTFIT_NG_FLASHY_2 RETURN "OUTFIT_NG_FLASHY_2" BREAK
CASE OUTFIT_NG_FLASHY_3 RETURN "OUTFIT_NG_FLASHY_3" BREAK
CASE OUTFIT_NG_FLASHY_4 RETURN "OUTFIT_NG_FLASHY_4" BREAK
CASE OUTFIT_NG_FLASHY_5 RETURN "OUTFIT_NG_FLASHY_5" BREAK
CASE OUTFIT_NG_FLASHY_6 RETURN "OUTFIT_NG_FLASHY_6" BREAK
CASE OUTFIT_NG_FLASHY_7 RETURN "OUTFIT_NG_FLASHY_7" BREAK
CASE OUTFIT_NG_PARTY_0 RETURN "OUTFIT_NG_PARTY_0" BREAK
CASE OUTFIT_NG_PARTY_1 RETURN "OUTFIT_NG_PARTY_1" BREAK
CASE OUTFIT_NG_PARTY_2 RETURN "OUTFIT_NG_PARTY_2" BREAK
CASE OUTFIT_NG_PARTY_3 RETURN "OUTFIT_NG_PARTY_3" BREAK
CASE OUTFIT_NG_PARTY_4 RETURN "OUTFIT_NG_PARTY_4" BREAK
CASE OUTFIT_NG_PARTY_5 RETURN "OUTFIT_NG_PARTY_5" BREAK
CASE OUTFIT_NG_PARTY_6 RETURN "OUTFIT_NG_PARTY_6" BREAK
CASE OUTFIT_NG_PARTY_7 RETURN "OUTFIT_NG_PARTY_7" BREAK
CASE OUTFIT_NG_BEACH_0 RETURN "OUTFIT_NG_BEACH_0" BREAK
CASE OUTFIT_NG_BEACH_1 RETURN "OUTFIT_NG_BEACH_1" BREAK
CASE OUTFIT_NG_BEACH_2 RETURN "OUTFIT_NG_BEACH_2" BREAK
CASE OUTFIT_NG_BEACH_3 RETURN "OUTFIT_NG_BEACH_3" BREAK
CASE OUTFIT_NG_BEACH_4 RETURN "OUTFIT_NG_BEACH_4" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_NG_BEACH_5 RETURN "OUTFIT_NG_BEACH_5" BREAK
CASE OUTFIT_NG_BEACH_6 RETURN "OUTFIT_NG_BEACH_6" BREAK
CASE OUTFIT_NG_BEACH_7 RETURN "OUTFIT_NG_BEACH_7" BREAK
CASE OUTFIT_NG_SMART_0 RETURN "OUTFIT_NG_SMART_0" BREAK
CASE OUTFIT_NG_SMART_1 RETURN "OUTFIT_NG_SMART_1" BREAK
CASE OUTFIT_NG_SMART_2 RETURN "OUTFIT_NG_SMART_2" BREAK
CASE OUTFIT_NG_SMART_3 RETURN "OUTFIT_NG_SMART_3" BREAK
CASE OUTFIT_NG_SMART_4 RETURN "OUTFIT_NG_SMART_4" BREAK
CASE OUTFIT_NG_SMART_5 RETURN "OUTFIT_NG_SMART_5" BREAK
CASE OUTFIT_NG_SMART_6 RETURN "OUTFIT_NG_SMART_6" BREAK
CASE OUTFIT_NG_SMART_7 RETURN "OUTFIT_NG_SMART_7" BREAK
CASE OUTFIT_NG_SPORTY_0 RETURN "OUTFIT_NG_SPORTY_0" BREAK
CASE OUTFIT_NG_SPORTY_1 RETURN "OUTFIT_NG_SPORTY_1" BREAK
CASE OUTFIT_NG_SPORTY_2 RETURN "OUTFIT_NG_SPORTY_2" BREAK
CASE OUTFIT_NG_SPORTY_3 RETURN "OUTFIT_NG_SPORTY_3" BREAK
CASE OUTFIT_NG_SPORTY_4 RETURN "OUTFIT_NG_SPORTY_4" BREAK
CASE OUTFIT_NG_SPORTY_5 RETURN "OUTFIT_NG_SPORTY_5" BREAK
CASE OUTFIT_NG_SPORTY_6 RETURN "OUTFIT_NG_SPORTY_6" BREAK
CASE OUTFIT_NG_SPORTY_7 RETURN "OUTFIT_NG_SPORTY_7" BREAK
CASE OUTFIT_NG_ECCENTRIC_0 RETURN "OUTFIT_NG_ECCENTRIC_0" BREAK
CASE OUTFIT_NG_ECCENTRIC_1 RETURN "OUTFIT_NG_ECCENTRIC_1" BREAK
CASE OUTFIT_NG_ECCENTRIC_2 RETURN "OUTFIT_NG_ECCENTRIC_2" BREAK
CASE OUTFIT_NG_ECCENTRIC_3 RETURN "OUTFIT_NG_ECCENTRIC_3" BREAK
CASE OUTFIT_NG_ECCENTRIC_4 RETURN "OUTFIT_NG_ECCENTRIC_4" BREAK
CASE OUTFIT_NG_ECCENTRIC_5 RETURN "OUTFIT_NG_ECCENTRIC_5" BREAK
CASE OUTFIT_NG_ECCENTRIC_6 RETURN "OUTFIT_NG_ECCENTRIC_6" BREAK
CASE OUTFIT_NG_ECCENTRIC_7 RETURN "OUTFIT_NG_ECCENTRIC_7" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_LOWR_BLUE_ZOOT_0 RETURN "OUTFIT_VERSUS_LOWR_BLUE_ZOOT_0" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_ZOOT_1 RETURN "OUTFIT_VERSUS_LOWR_BLUE_ZOOT_1" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_ZOOT_2 RETURN "OUTFIT_VERSUS_LOWR_BLUE_ZOOT_2" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_ZOOT_3 RETURN "OUTFIT_VERSUS_LOWR_BLUE_ZOOT_3" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_ZOOT_4 RETURN "OUTFIT_VERSUS_LOWR_BLUE_ZOOT_4" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_ZOOT_5 RETURN "OUTFIT_VERSUS_LOWR_BLUE_ZOOT_5" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_ZOOT_0 RETURN "OUTFIT_VERSUS_LOWR_RED_ZOOT_0" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_ZOOT_1 RETURN "OUTFIT_VERSUS_LOWR_RED_ZOOT_1" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_ZOOT_2 RETURN "OUTFIT_VERSUS_LOWR_RED_ZOOT_2" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_ZOOT_3 RETURN "OUTFIT_VERSUS_LOWR_RED_ZOOT_3" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_ZOOT_4 RETURN "OUTFIT_VERSUS_LOWR_RED_ZOOT_4" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_ZOOT_5 RETURN "OUTFIT_VERSUS_LOWR_RED_ZOOT_5" BREAK
CASE OUTFIT_VERSUS_LOWR_FORMAL_0 RETURN "OUTFIT_VERSUS_LOWR_FORMAL_0" BREAK
CASE OUTFIT_VERSUS_LOWR_FORMAL_1 RETURN "OUTFIT_VERSUS_LOWR_FORMAL_1" BREAK
CASE OUTFIT_VERSUS_LOWR_FORMAL_2 RETURN "OUTFIT_VERSUS_LOWR_FORMAL_2" BREAK
CASE OUTFIT_VERSUS_LOWR_FORMAL_3 RETURN "OUTFIT_VERSUS_LOWR_FORMAL_3" BREAK
CASE OUTFIT_VERSUS_LOWR_FORMAL_4 RETURN "OUTFIT_VERSUS_LOWR_FORMAL_4" BREAK
CASE OUTFIT_VERSUS_LOWR_FORMAL_5 RETURN "OUTFIT_VERSUS_LOWR_FORMAL_5" BREAK
CASE OUTFIT_VERSUS_LOWR_STREET_0 RETURN "OUTFIT_VERSUS_LOWR_STREET_0" BREAK
CASE OUTFIT_VERSUS_LOWR_STREET_1 RETURN "OUTFIT_VERSUS_LOWR_STREET_1" BREAK
CASE OUTFIT_VERSUS_LOWR_STREET_2 RETURN "OUTFIT_VERSUS_LOWR_STREET_2" BREAK
CASE OUTFIT_VERSUS_LOWR_STREET_3 RETURN "OUTFIT_VERSUS_LOWR_STREET_3" BREAK
CASE OUTFIT_VERSUS_LOWR_STREET_4 RETURN "OUTFIT_VERSUS_LOWR_STREET_4" BREAK
CASE OUTFIT_VERSUS_LOWR_STREET_5 RETURN "OUTFIT_VERSUS_LOWR_STREET_5" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_LOW_FLOW_WOLVES_0 RETURN "OUTFIT_LOW_FLOW_WOLVES_0" BREAK
CASE OUTFIT_LOW_FLOW_EAGLES_0 RETURN "OUTFIT_LOW_FLOW_EAGLES_0" BREAK
CASE OUTFIT_LOW_FLOW_BULLS_0 RETURN "OUTFIT_LOW_FLOW_BULLS_0" BREAK
CASE OUTFIT_LOW_FLOW_BEARS_0 RETURN "OUTFIT_LOW_FLOW_BEARS_0" BREAK
CASE OUTFIT_SOLO_SENIORS_0 RETURN "OUTFIT_SOLO_SENIORS_0" BREAK
CASE OUTFIT_SOLO_GENTS_0 RETURN "OUTFIT_SOLO_GENTS_0" BREAK
CASE OUTFIT_SOLO_FRANKS_0 RETURN "OUTFIT_SOLO_FRANKS_0" BREAK
CASE OUTFIT_SOLO_VAMPS_0 RETURN "OUTFIT_SOLO_VAMPS_0" BREAK
CASE OUTFIT_SOLO_KITTENS_0 RETURN "OUTFIT_SOLO_KITTENS_0" BREAK
CASE OUTFIT_SOLO_FOXES_0 RETURN "OUTFIT_SOLO_FOXES_0" BREAK
CASE OUTFIT_SOLO_RACCOONS_0 RETURN "OUTFIT_SOLO_RACCOONS_0" BREAK
CASE OUTFIT_SOLO_OWLS_0 RETURN "OUTFIT_SOLO_OWLS_0" BREAK
CASE OUTFIT_SOLO_BUGS_0 RETURN "OUTFIT_SOLO_BUGS_0" BREAK
CASE OUTFIT_SOLO_PIGS_0 RETURN "OUTFIT_SOLO_PIGS_0" BREAK
CASE OUTFIT_SOLO_FROST_0 RETURN "OUTFIT_SOLO_FROST_0" BREAK
CASE OUTFIT_SOLO_POLAR_0 RETURN "OUTFIT_SOLO_POLAR_0" BREAK
CASE OUTFIT_SOLO_REPTILIANS_0 RETURN "OUTFIT_SOLO_REPTILIANS_0" BREAK
CASE OUTFIT_SOLO_SATANS_0 RETURN "OUTFIT_SOLO_SATANS_0" BREAK
CASE OUTFIT_SOLO_SUBURBIA_0 RETURN "OUTFIT_SOLO_SUBURBIA_0" BREAK
CASE OUTFIT_SOLO_MONSTER_MILITIA_0 RETURN "OUTFIT_SOLO_MONSTER_MILITIA_0" BREAK
CASE OUTFIT_LOW_FLOW_NORTH_0 RETURN "OUTFIT_LOW_FLOW_NORTH_0" BREAK
CASE OUTFIT_LOW_FLOW_SOUTH_0 RETURN "OUTFIT_LOW_FLOW_SOUTH_0" BREAK
CASE OUTFIT_LOW_FLOW_STARS_0 RETURN "OUTFIT_LOW_FLOW_STARS_0" BREAK
CASE OUTFIT_LOW_FLOW_STRIPES_0 RETURN "OUTFIT_LOW_FLOW_STRIPES_0" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HAL_MANIACS_0 RETURN "OUTFIT_VERSUS_HAL_MANIACS_0" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_1 RETURN "OUTFIT_VERSUS_HAL_MANIACS_1" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_2 RETURN "OUTFIT_VERSUS_HAL_MANIACS_2" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_3 RETURN "OUTFIT_VERSUS_HAL_MANIACS_3" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_4 RETURN "OUTFIT_VERSUS_HAL_MANIACS_4" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_5 RETURN "OUTFIT_VERSUS_HAL_MANIACS_5" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_0 RETURN "OUTFIT_VERSUS_HAL_HOWLERS_0" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_1 RETURN "OUTFIT_VERSUS_HAL_HOWLERS_1" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_2 RETURN "OUTFIT_VERSUS_HAL_HOWLERS_2" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_3 RETURN "OUTFIT_VERSUS_HAL_HOWLERS_3" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_4 RETURN "OUTFIT_VERSUS_HAL_HOWLERS_4" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_5 RETURN "OUTFIT_VERSUS_HAL_HOWLERS_5" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_0 RETURN "OUTFIT_VERSUS_HAL_RETILIANS_0" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_1 RETURN "OUTFIT_VERSUS_HAL_RETILIANS_1" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_2 RETURN "OUTFIT_VERSUS_HAL_RETILIANS_2" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_3 RETURN "OUTFIT_VERSUS_HAL_RETILIANS_3" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_4 RETURN "OUTFIT_VERSUS_HAL_RETILIANS_4" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_5 RETURN "OUTFIT_VERSUS_HAL_RETILIANS_5" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_0 RETURN "OUTFIT_VERSUS_HAL_SATANS_0" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_1 RETURN "OUTFIT_VERSUS_HAL_SATANS_1" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_2 RETURN "OUTFIT_VERSUS_HAL_SATANS_2" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_3 RETURN "OUTFIT_VERSUS_HAL_SATANS_3" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_4 RETURN "OUTFIT_VERSUS_HAL_SATANS_4" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_5 RETURN "OUTFIT_VERSUS_HAL_SATANS_5" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_0 RETURN "OUTFIT_VERSUS_HAL_DOUBLE_0" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_1 RETURN "OUTFIT_VERSUS_HAL_DOUBLE_1" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_2 RETURN "OUTFIT_VERSUS_HAL_DOUBLE_2" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_3 RETURN "OUTFIT_VERSUS_HAL_DOUBLE_3" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_4 RETURN "OUTFIT_VERSUS_HAL_DOUBLE_4" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_5 RETURN "OUTFIT_VERSUS_HAL_DOUBLE_5" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_0 RETURN "OUTFIT_VERSUS_HAL_TRICKSTERS_0" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_1 RETURN "OUTFIT_VERSUS_HAL_TRICKSTERS_1" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_2 RETURN "OUTFIT_VERSUS_HAL_TRICKSTERS_2" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_3 RETURN "OUTFIT_VERSUS_HAL_TRICKSTERS_3" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_4 RETURN "OUTFIT_VERSUS_HAL_TRICKSTERS_4" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_5 RETURN "OUTFIT_VERSUS_HAL_TRICKSTERS_5" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_0 RETURN "OUTFIT_VERSUS_HAL_SUBURBIA_0" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_1 RETURN "OUTFIT_VERSUS_HAL_SUBURBIA_1" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_2 RETURN "OUTFIT_VERSUS_HAL_SUBURBIA_2" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_3 RETURN "OUTFIT_VERSUS_HAL_SUBURBIA_3" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_4 RETURN "OUTFIT_VERSUS_HAL_SUBURBIA_4" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_5 RETURN "OUTFIT_VERSUS_HAL_SUBURBIA_5" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_0 RETURN "OUTFIT_VERSUS_HAL_MONSTER_MILITIA_0" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_1 RETURN "OUTFIT_VERSUS_HAL_MONSTER_MILITIA_1" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_2 RETURN "OUTFIT_VERSUS_HAL_MONSTER_MILITIA_2" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_3 RETURN "OUTFIT_VERSUS_HAL_MONSTER_MILITIA_3" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_4 RETURN "OUTFIT_VERSUS_HAL_MONSTER_MILITIA_4" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_5 RETURN "OUTFIT_VERSUS_HAL_MONSTER_MILITIA_5" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_0 RETURN "OUTFIT_VERSUS_HAL_PSYCHOS_0" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_1 RETURN "OUTFIT_VERSUS_HAL_PSYCHOS_1" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_2 RETURN "OUTFIT_VERSUS_HAL_PSYCHOS_2" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_3 RETURN "OUTFIT_VERSUS_HAL_PSYCHOS_3" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_4 RETURN "OUTFIT_VERSUS_HAL_PSYCHOS_4" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_5 RETURN "OUTFIT_VERSUS_HAL_PSYCHOS_5" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_0 RETURN "OUTFIT_VERSUS_HAL_UNDEAD_0" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_1 RETURN "OUTFIT_VERSUS_HAL_UNDEAD_1" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_2 RETURN "OUTFIT_VERSUS_HAL_UNDEAD_2" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_3 RETURN "OUTFIT_VERSUS_HAL_UNDEAD_3" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_4 RETURN "OUTFIT_VERSUS_HAL_UNDEAD_4" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_5 RETURN "OUTFIT_VERSUS_HAL_UNDEAD_5" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_0 RETURN "OUTFIT_VERSUS_HAL_DWELLERS_0" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_1 RETURN "OUTFIT_VERSUS_HAL_DWELLERS_1" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_2 RETURN "OUTFIT_VERSUS_HAL_DWELLERS_2" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_3 RETURN "OUTFIT_VERSUS_HAL_DWELLERS_3" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_4 RETURN "OUTFIT_VERSUS_HAL_DWELLERS_4" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_5 RETURN "OUTFIT_VERSUS_HAL_DWELLERS_5" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_0 RETURN "OUTFIT_VERSUS_HAL_PIMP_WITCHES_0" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_1 RETURN "OUTFIT_VERSUS_HAL_PIMP_WITCHES_1" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_2 RETURN "OUTFIT_VERSUS_HAL_PIMP_WITCHES_2" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_3 RETURN "OUTFIT_VERSUS_HAL_PIMP_WITCHES_3" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_4 RETURN "OUTFIT_VERSUS_HAL_PIMP_WITCHES_4" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_5 RETURN "OUTFIT_VERSUS_HAL_PIMP_WITCHES_5" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_LOW_FLOW_LOWRIDER_0 RETURN "OUTFIT_LOW_FLOW_LOWRIDER_0" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_1 RETURN "OUTFIT_LOW_FLOW_LOWRIDER_1" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_2 RETURN "OUTFIT_LOW_FLOW_LOWRIDER_2" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_3 RETURN "OUTFIT_LOW_FLOW_LOWRIDER_3" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_4 RETURN "OUTFIT_LOW_FLOW_LOWRIDER_4" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_5 RETURN "OUTFIT_LOW_FLOW_LOWRIDER_5" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_6 RETURN "OUTFIT_LOW_FLOW_LOWRIDER_6" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_7 RETURN "OUTFIT_LOW_FLOW_LOWRIDER_7" BREAK
CASE OUTFIT_LOW_FLOW_VAGOS_0 RETURN "OUTFIT_LOW_FLOW_VAGOS_0" BREAK
CASE OUTFIT_LOW_FLOW_VAGOS_1 RETURN "OUTFIT_LOW_FLOW_VAGOS_1" BREAK
CASE OUTFIT_LOW_FLOW_VAGOS_2 RETURN "OUTFIT_LOW_FLOW_VAGOS_2" BREAK
CASE OUTFIT_LOW_FLOW_VAGOS_3 RETURN "OUTFIT_LOW_FLOW_VAGOS_3" BREAK
CASE OUTFIT_LOW_FLOW_BALLAS_0 RETURN "OUTFIT_LOW_FLOW_BALLAS_0" BREAK
CASE OUTFIT_LOW_FLOW_BALLAS_1 RETURN "OUTFIT_LOW_FLOW_BALLAS_1" BREAK
CASE OUTFIT_LOW_FLOW_BALLAS_2 RETURN "OUTFIT_LOW_FLOW_BALLAS_2" BREAK
CASE OUTFIT_LOW_FLOW_BALLAS_3 RETURN "OUTFIT_LOW_FLOW_BALLAS_3" BREAK
CASE OUTFIT_LOW_FLOW_FUNERAL_0 RETURN "OUTFIT_LOW_FLOW_FUNERAL_0" BREAK
CASE OUTFIT_LOW_FLOW_FUNERAL_1 RETURN "OUTFIT_LOW_FLOW_FUNERAL_1" BREAK
CASE OUTFIT_LOW_FLOW_FUNERAL_2 RETURN "OUTFIT_LOW_FLOW_FUNERAL_2" BREAK
CASE OUTFIT_LOW_FLOW_FUNERAL_3 RETURN "OUTFIT_LOW_FLOW_FUNERAL_3" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_SMART_0 RETURN "OUTFIT_VERSUS_LOWR_BLUE_SMART_0" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_SMART_1 RETURN "OUTFIT_VERSUS_LOWR_BLUE_SMART_1" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_SMART_2 RETURN "OUTFIT_VERSUS_LOWR_BLUE_SMART_2" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_SMART_3 RETURN "OUTFIT_VERSUS_LOWR_BLUE_SMART_3" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_SMART_4 RETURN "OUTFIT_VERSUS_LOWR_BLUE_SMART_4" BREAK
CASE OUTFIT_VERSUS_LOWR_BLUE_SMART_5 RETURN "OUTFIT_VERSUS_LOWR_BLUE_SMART_5" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_SMART_0 RETURN "OUTFIT_VERSUS_LOWR_RED_SMART_0" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_SMART_1 RETURN "OUTFIT_VERSUS_LOWR_RED_SMART_1" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_SMART_2 RETURN "OUTFIT_VERSUS_LOWR_RED_SMART_2" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_SMART_3 RETURN "OUTFIT_VERSUS_LOWR_RED_SMART_3" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_SMART_4 RETURN "OUTFIT_VERSUS_LOWR_RED_SMART_4" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_SMART_5 RETURN "OUTFIT_VERSUS_LOWR_RED_SMART_5" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_SMART_0 RETURN "OUTFIT_VERSUS_LOWR_WHITE_SMART_0" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_SMART_1 RETURN "OUTFIT_VERSUS_LOWR_WHITE_SMART_1" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_SMART_2 RETURN "OUTFIT_VERSUS_LOWR_WHITE_SMART_2" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_SMART_3 RETURN "OUTFIT_VERSUS_LOWR_WHITE_SMART_3" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_SMART_4 RETURN "OUTFIT_VERSUS_LOWR_WHITE_SMART_4" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_SMART_5 RETURN "OUTFIT_VERSUS_LOWR_WHITE_SMART_5" BREAK
CASE OUTFIT_VERSUS_LOWR_BLACK_SMART_0 RETURN "OUTFIT_VERSUS_LOWR_BLACK_SMART_0" BREAK
CASE OUTFIT_VERSUS_LOWR_BLACK_SMART_1 RETURN "OUTFIT_VERSUS_LOWR_BLACK_SMART_1" BREAK
CASE OUTFIT_VERSUS_LOWR_BLACK_SMART_2 RETURN "OUTFIT_VERSUS_LOWR_BLACK_SMART_2" BREAK
CASE OUTFIT_VERSUS_LOWR_BLACK_SMART_3 RETURN "OUTFIT_VERSUS_LOWR_BLACK_SMART_3" BREAK
CASE OUTFIT_VERSUS_LOWR_BLACK_SMART_4 RETURN "OUTFIT_VERSUS_LOWR_BLACK_SMART_4" BREAK
CASE OUTFIT_VERSUS_LOWR_BLACK_SMART_5 RETURN "OUTFIT_VERSUS_LOWR_BLACK_SMART_5" BREAK
CASE OUTFIT_VERSUS_LOWR_YELLOW_SPORT_0 RETURN "OUTFIT_VERSUS_LOWR_YELLOW_SPORT_0" BREAK
CASE OUTFIT_VERSUS_LOWR_YELLOW_SPORT_1 RETURN "OUTFIT_VERSUS_LOWR_YELLOW_SPORT_1" BREAK
CASE OUTFIT_VERSUS_LOWR_YELLOW_SPORT_2 RETURN "OUTFIT_VERSUS_LOWR_YELLOW_SPORT_2" BREAK
CASE OUTFIT_VERSUS_LOWR_YELLOW_SPORT_3 RETURN "OUTFIT_VERSUS_LOWR_YELLOW_SPORT_3" BREAK
CASE OUTFIT_VERSUS_LOWR_YELLOW_SPORT_4 RETURN "OUTFIT_VERSUS_LOWR_YELLOW_SPORT_4" BREAK
CASE OUTFIT_VERSUS_LOWR_YELLOW_SPORT_5 RETURN "OUTFIT_VERSUS_LOWR_YELLOW_SPORT_5" BREAK
CASE OUTFIT_VERSUS_LOWR_GREEN_SPORT_0 RETURN "OUTFIT_VERSUS_LOWR_GREEN_SPORT_0" BREAK
CASE OUTFIT_VERSUS_LOWR_GREEN_SPORT_1 RETURN "OUTFIT_VERSUS_LOWR_GREEN_SPORT_1" BREAK
CASE OUTFIT_VERSUS_LOWR_GREEN_SPORT_2 RETURN "OUTFIT_VERSUS_LOWR_GREEN_SPORT_2" BREAK
CASE OUTFIT_VERSUS_LOWR_GREEN_SPORT_3 RETURN "OUTFIT_VERSUS_LOWR_GREEN_SPORT_3" BREAK
CASE OUTFIT_VERSUS_LOWR_GREEN_SPORT_4 RETURN "OUTFIT_VERSUS_LOWR_GREEN_SPORT_4" BREAK
CASE OUTFIT_VERSUS_LOWR_GREEN_SPORT_5 RETURN "OUTFIT_VERSUS_LOWR_GREEN_SPORT_5" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_STREET_0 RETURN "OUTFIT_VERSUS_LOWR_WHITE_STREET_0" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_STREET_1 RETURN "OUTFIT_VERSUS_LOWR_WHITE_STREET_1" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_STREET_2 RETURN "OUTFIT_VERSUS_LOWR_WHITE_STREET_2" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_STREET_3 RETURN "OUTFIT_VERSUS_LOWR_WHITE_STREET_3" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_STREET_4 RETURN "OUTFIT_VERSUS_LOWR_WHITE_STREET_4" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_STREET_5 RETURN "OUTFIT_VERSUS_LOWR_WHITE_STREET_5" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_STREET_0 RETURN "OUTFIT_VERSUS_LOWR_RED_STREET_0" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_STREET_1 RETURN "OUTFIT_VERSUS_LOWR_RED_STREET_1" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_STREET_2 RETURN "OUTFIT_VERSUS_LOWR_RED_STREET_2" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_STREET_3 RETURN "OUTFIT_VERSUS_LOWR_RED_STREET_3" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_STREET_4 RETURN "OUTFIT_VERSUS_LOWR_RED_STREET_4" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_STREET_5 RETURN "OUTFIT_VERSUS_LOWR_RED_STREET_5" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_CLASSIC_METAL_0 RETURN "OUTFIT_VERSUS_CLASSIC_METAL_0" BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_0 RETURN "OUTFIT_ADVERSARY_B_OVERRIDE_0" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_GREEN_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_GREEN_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_ORANGE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_ORANGE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PURPLE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PURPLE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_GREEN_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_GREEN_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_ORANGE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_ORANGE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PURPLE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PURPLE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_GREEN_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_GREEN_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_ORANGE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_ORANGE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PURPLE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PURPLE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_ORANGE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_ORANGE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PURPLE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PURPLE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_DROP_GREEN_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_DROP_GREEN_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_DROP_ORANGE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_DROP_ORANGE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PURPLE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PURPLE_0"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_1 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_1"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_2 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_2"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_3 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_3"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_1 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_1"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_2 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_2"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_3 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_3"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_1 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_1"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_2 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_2"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_3 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_3"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_1 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_1"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_2 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_2"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_3 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_3"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_LOWR2_BROWN_SPORT_0 RETURN "OUTFIT_VERSUS_LOWR2_BROWN_SPORT_0"
CASE OUTFIT_VERSUS_LOWR2_BROWN_SPORT_1 RETURN "OUTFIT_VERSUS_LOWR2_BROWN_SPORT_1"
CASE OUTFIT_VERSUS_LOWR2_BROWN_SPORT_2 RETURN "OUTFIT_VERSUS_LOWR2_BROWN_SPORT_2"
CASE OUTFIT_VERSUS_LOWR2_BROWN_SPORT_3 RETURN "OUTFIT_VERSUS_LOWR2_BROWN_SPORT_3"
CASE OUTFIT_VERSUS_LOWR2_BROWN_SPORT_4 RETURN "OUTFIT_VERSUS_LOWR2_BROWN_SPORT_4"
CASE OUTFIT_VERSUS_LOWR2_BROWN_SPORT_5 RETURN "OUTFIT_VERSUS_LOWR2_BROWN_SPORT_5"
CASE OUTFIT_VERSUS_LOWR2_WHITE_SPORT_0 RETURN "OUTFIT_VERSUS_LOWR2_WHITE_SPORT_0"
CASE OUTFIT_VERSUS_LOWR2_WHITE_SPORT_1 RETURN "OUTFIT_VERSUS_LOWR2_WHITE_SPORT_1"
CASE OUTFIT_VERSUS_LOWR2_WHITE_SPORT_2 RETURN "OUTFIT_VERSUS_LOWR2_WHITE_SPORT_2"
CASE OUTFIT_VERSUS_LOWR2_WHITE_SPORT_3 RETURN "OUTFIT_VERSUS_LOWR2_WHITE_SPORT_3"
CASE OUTFIT_VERSUS_LOWR2_WHITE_SPORT_4 RETURN "OUTFIT_VERSUS_LOWR2_WHITE_SPORT_4"
CASE OUTFIT_VERSUS_LOWR2_WHITE_SPORT_5 RETURN "OUTFIT_VERSUS_LOWR2_WHITE_SPORT_5"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_0 RETURN "OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_0"
CASE OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_1 RETURN "OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_1"
CASE OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_2 RETURN "OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_2"
CASE OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_3 RETURN "OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_3"
CASE OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_4 RETURN "OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_4"
CASE OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_5 RETURN "OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_5"
CASE OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_0 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_0"
CASE OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_1 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_1"
CASE OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_2 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_2"
CASE OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_3 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_3"
CASE OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_4 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_4"
CASE OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_5 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_5"
CASE OUTFIT_VERSUS_THEMED_EXEC_MONO_0 RETURN "OUTFIT_VERSUS_THEMED_EXEC_MONO_0"
CASE OUTFIT_VERSUS_THEMED_EXEC_MONO_1 RETURN "OUTFIT_VERSUS_THEMED_EXEC_MONO_1"
CASE OUTFIT_VERSUS_THEMED_EXEC_MONO_2 RETURN "OUTFIT_VERSUS_THEMED_EXEC_MONO_2"
CASE OUTFIT_VERSUS_THEMED_EXEC_MONO_3 RETURN "OUTFIT_VERSUS_THEMED_EXEC_MONO_3"
CASE OUTFIT_VERSUS_THEMED_EXEC_MONO_4 RETURN "OUTFIT_VERSUS_THEMED_EXEC_MONO_4"
CASE OUTFIT_VERSUS_THEMED_EXEC_MONO_5 RETURN "OUTFIT_VERSUS_THEMED_EXEC_MONO_5"
CASE OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_0 RETURN "OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_0"
CASE OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_1 RETURN "OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_1"
CASE OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_2 RETURN "OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_2"
CASE OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_3 RETURN "OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_3"
CASE OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_4 RETURN "OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_4"
CASE OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_5 RETURN "OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_5"
CASE OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_0 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_0"
CASE OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_1 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_1"
CASE OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_2 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_2"
CASE OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_3 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_3"
CASE OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_4 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_4"
CASE OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_5 RETURN "OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_5"
CASE OUTFIT_VERSUS_THEMED_EXEC_COOKIES_0 RETURN "OUTFIT_VERSUS_THEMED_EXEC_COOKIES_0"
CASE OUTFIT_VERSUS_THEMED_EXEC_COOKIES_1 RETURN "OUTFIT_VERSUS_THEMED_EXEC_COOKIES_1"
CASE OUTFIT_VERSUS_THEMED_EXEC_COOKIES_2 RETURN "OUTFIT_VERSUS_THEMED_EXEC_COOKIES_2"
CASE OUTFIT_VERSUS_THEMED_EXEC_COOKIES_3 RETURN "OUTFIT_VERSUS_THEMED_EXEC_COOKIES_3"
CASE OUTFIT_VERSUS_THEMED_EXEC_COOKIES_4 RETURN "OUTFIT_VERSUS_THEMED_EXEC_COOKIES_4"
CASE OUTFIT_VERSUS_THEMED_EXEC_COOKIES_5 RETURN "OUTFIT_VERSUS_THEMED_EXEC_COOKIES_5"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0"
CASE OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_ORANGE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_ORANGE_0"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_STUNT_RACE_BIKER_0 RETURN "OUTFIT_STUNT_RACE_BIKER_0"
CASE OUTFIT_STUNT_RACE_BIKER_1 RETURN "OUTFIT_STUNT_RACE_BIKER_1"
CASE OUTFIT_STUNT_RACE_STUNT_0 RETURN "OUTFIT_STUNT_RACE_STUNT_0"
CASE OUTFIT_STUNT_RACE_STUNT_1 RETURN "OUTFIT_STUNT_RACE_STUNT_1"
CASE OUTFIT_STUNT_RACE_RACER_0 RETURN "OUTFIT_STUNT_RACE_RACER_0"
CASE OUTFIT_STUNT_RACE_RACER_1 RETURN "OUTFIT_STUNT_RACE_RACER_1"
CASE OUTFIT_STUNT_RACE_MOTO_0 RETURN "OUTFIT_STUNT_RACE_MOTO_0"
CASE OUTFIT_STUNT_RACE_MOTO_1 RETURN "OUTFIT_STUNT_RACE_MOTO_1"
// CASE 8 RETURN "FMSTP_CUSTOM"
CASE OUTFIT_MP_FREEMODE RETURN "OUTFIT_MP_FREEMODE"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_SCUBA RETURN "OUTFIT_GANGOPS_HEIST_SCUBA"
CASE OUTFIT_GANGOPS_HEIST_SCUBA_NOTANK RETURN "OUTFIT_GANGOPS_HEIST_SCUBA_NOTANK"
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_0 RETURN "OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_0"
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_1 RETURN "OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_1"
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_0 RETURN "OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_0"
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_1 RETURN "OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_1"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_0 RETURN "OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_0"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_1 RETURN "OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_1"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_2 RETURN "OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_2"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_3 RETURN "OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_3"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_0 RETURN "OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_0"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_1 RETURN "OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_1"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_2 RETURN "OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_2"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_3 RETURN "OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_3"
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_0 RETURN "OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_0"
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_1 RETURN "OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_1"
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_2 RETURN "OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_2"
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_3 RETURN "OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_3"
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_0 RETURN "OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_0"
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_1 RETURN "OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_1"
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_2 RETURN "OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_2"
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_3 RETURN "OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_3"
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_0 RETURN "OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_0"
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_1 RETURN "OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_1"
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_2 RETURN "OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_2"
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_3 RETURN "OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_3"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_0 RETURN "OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_0"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_1 RETURN "OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_1"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_2 RETURN "OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_2"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_3 RETURN "OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_3"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_0 RETURN "OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_0"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_1 RETURN "OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_1"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_2 RETURN "OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_2"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_3 RETURN "OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_3"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_0 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_0"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_1 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_1"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_2 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_2"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_3 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_3"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_0 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_0"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_1 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_1"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_2 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_2"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_3 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_3"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_0 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_0"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_1 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_1"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_2 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_2"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_3 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_3"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_0 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_0"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_1 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_1"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_2 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_2"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_3 RETURN "OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_3"
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_0 RETURN "OUTFIT_GANGOPS_HEIST_SUB_DRIVER_0"
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_1 RETURN "OUTFIT_GANGOPS_HEIST_SUB_DRIVER_1"
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_2 RETURN "OUTFIT_GANGOPS_HEIST_SUB_DRIVER_2"
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_3 RETURN "OUTFIT_GANGOPS_HEIST_SUB_DRIVER_3"
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_0 RETURN "OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_0"
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_1 RETURN "OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_1"
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_2 RETURN "OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_2"
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_3 RETURN "OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_3"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_0 RETURN "OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_0"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_1 RETURN "OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_1"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_2 RETURN "OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_2"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_3 RETURN "OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_3"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_0 RETURN "OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_0"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_1 RETURN "OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_1"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_2 RETURN "OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_2"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_3 RETURN "OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_3"
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_0 RETURN "OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_0"
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_1 RETURN "OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_1"
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_2 RETURN "OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_2"
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_3 RETURN "OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_3"
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_0 RETURN "OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_0"
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_1 RETURN "OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_1"
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_2 RETURN "OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_2"
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_3 RETURN "OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_3"
CASE OUTFIT_GANGOPS_HEIST_GORKA_0 RETURN "OUTFIT_GANGOPS_HEIST_GORKA_0"
CASE OUTFIT_GANGOPS_HEIST_GORKA_1 RETURN "OUTFIT_GANGOPS_HEIST_GORKA_1"
CASE OUTFIT_GANGOPS_HEIST_GORKA_2 RETURN "OUTFIT_GANGOPS_HEIST_GORKA_2"
CASE OUTFIT_GANGOPS_HEIST_GORKA_3 RETURN "OUTFIT_GANGOPS_HEIST_GORKA_3"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_0 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_0"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_1 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_1"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_2 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_2"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_3 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_3"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_4 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_4"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_5 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_5"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_0 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_0"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_1 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_1"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_2 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_2"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_3 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_3"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_4 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_4"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_5 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_5"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_0 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_0"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_1 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_1"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_2 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_2"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_3 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_3"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_4 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_4"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_5 RETURN "OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_5"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_0 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_0"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_1 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_1"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_2 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_2"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_3 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_3"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_4 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_4"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_5 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_5"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_0 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_0"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_1 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_1"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_2 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_2"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_3 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_3"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_4 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_4"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_5 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_5"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_0 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_0"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_1 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_1"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_2 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_2"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_3 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_3"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_4 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_4"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_5 RETURN "OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_5"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_0 RETURN "OUTFIT_CASINO_HEIST_STEALTH_I_0"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_1 RETURN "OUTFIT_CASINO_HEIST_STEALTH_I_1"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_2 RETURN "OUTFIT_CASINO_HEIST_STEALTH_I_2"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_3 RETURN "OUTFIT_CASINO_HEIST_STEALTH_I_3"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_4 RETURN "OUTFIT_CASINO_HEIST_STEALTH_I_4"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_5 RETURN "OUTFIT_CASINO_HEIST_STEALTH_I_5"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_0 RETURN "OUTFIT_CASINO_HEIST_STEALTH_II_0"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_1 RETURN "OUTFIT_CASINO_HEIST_STEALTH_II_1"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_2 RETURN "OUTFIT_CASINO_HEIST_STEALTH_II_2"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_3 RETURN "OUTFIT_CASINO_HEIST_STEALTH_II_3"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_4 RETURN "OUTFIT_CASINO_HEIST_STEALTH_II_4"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_5 RETURN "OUTFIT_CASINO_HEIST_STEALTH_II_5"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_0 RETURN "OUTFIT_CASINO_HEIST_STEALTH_III_0"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_1 RETURN "OUTFIT_CASINO_HEIST_STEALTH_III_1"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_2 RETURN "OUTFIT_CASINO_HEIST_STEALTH_III_2"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_3 RETURN "OUTFIT_CASINO_HEIST_STEALTH_III_3"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_4 RETURN "OUTFIT_CASINO_HEIST_STEALTH_III_4"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_5 RETURN "OUTFIT_CASINO_HEIST_STEALTH_III_5"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_0 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_0"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_1 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_1"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_2 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_2"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_3 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_3"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_4 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_4"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_5 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_5"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_0 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_0"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_1 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_1"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_2 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_2"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_3 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_3"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_4 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_4"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_5 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_5"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_0 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_0"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_1 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_1"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_2 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_2"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_3 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_3"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_4 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_4"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_5 RETURN "OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_5"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_0 RETURN "OUTFIT_CASINO_HEIST_BUGSTARS_0"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_1 RETURN "OUTFIT_CASINO_HEIST_BUGSTARS_1"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_2 RETURN "OUTFIT_CASINO_HEIST_BUGSTARS_2"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_3 RETURN "OUTFIT_CASINO_HEIST_BUGSTARS_3"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_4 RETURN "OUTFIT_CASINO_HEIST_BUGSTARS_4"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_5 RETURN "OUTFIT_CASINO_HEIST_BUGSTARS_5"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_0 RETURN "OUTFIT_CASINO_HEIST_GRUPPE_SECHS_0"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_1 RETURN "OUTFIT_CASINO_HEIST_GRUPPE_SECHS_1"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_2 RETURN "OUTFIT_CASINO_HEIST_GRUPPE_SECHS_2"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_3 RETURN "OUTFIT_CASINO_HEIST_GRUPPE_SECHS_3"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_4 RETURN "OUTFIT_CASINO_HEIST_GRUPPE_SECHS_4"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_5 RETURN "OUTFIT_CASINO_HEIST_GRUPPE_SECHS_5"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_0 RETURN "OUTFIT_CASINO_HEIST_MAINTENANCE_0"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_1 RETURN "OUTFIT_CASINO_HEIST_MAINTENANCE_1"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_2 RETURN "OUTFIT_CASINO_HEIST_MAINTENANCE_2"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_3 RETURN "OUTFIT_CASINO_HEIST_MAINTENANCE_3"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_4 RETURN "OUTFIT_CASINO_HEIST_MAINTENANCE_4"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_5 RETURN "OUTFIT_CASINO_HEIST_MAINTENANCE_5"
CASE OUTFIT_CASINO_HEIST_CELEB_0 RETURN "OUTFIT_CASINO_HEIST_CELEB_0"
CASE OUTFIT_CASINO_HEIST_CELEB_1 RETURN "OUTFIT_CASINO_HEIST_CELEB_1"
CASE OUTFIT_CASINO_HEIST_CELEB_2 RETURN "OUTFIT_CASINO_HEIST_CELEB_2"
CASE OUTFIT_CASINO_HEIST_CELEB_3 RETURN "OUTFIT_CASINO_HEIST_CELEB_3"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_BLUE_0 RETURN "OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_BLUE_0"
ENDSWITCH
RETURN ""
ENDFUNC
#ENDIF
FUNC BOOL GET_DLC_CREW_EMBLEM_HASH(BOOL bMale, INT iCount, INT &iHash)
iHash = 0
IF bMale
SWITCH iCount
CASE 0 iHash = HASH("DLC_MP_LTS_M_DECL_0_0") BREAK
CASE 1 iHash = HASH("DLC_MP_LOW_M_DECL_0_0") BREAK
CASE 2 iHash = HASH("DLC_MP_BIKER_M_DECL_0_1") BREAK
CASE 3 iHash = HASH("DLC_MP_BIKER_M_DECL_0_2") BREAK
CASE 4 iHash = HASH("DLC_MP_BIKER_M_DECL_0_3") BREAK
CASE 5 iHash = HASH("DLC_MP_BIKER_M_DECL_0_4") BREAK
CASE 6 iHash = HASH("DLC_MP_BIKER_M_DECL_0_5") BREAK
CASE 7 iHash = HASH("DLC_MP_BIKER_M_DECL_0_6") BREAK
CASE 8 iHash = HASH("DLC_MP_BIKER_M_DECL_0_7") BREAK
CASE 9 iHash = HASH("DLC_MP_BIKER_M_DECL_0_8") BREAK
CASE 10 iHash = HASH("DLC_MP_BIKER_M_DECL_1_0") BREAK
CASE 11 iHash = HASH("DLC_MP_BIKER_M_DECL_2_0") BREAK
CASE 12 iHash = HASH("DLC_MP_BIKER_M_DECL_3_0") BREAK
CASE 13 iHash = HASH("DLC_MP_BIKER_M_DECL_4_0") BREAK
CASE 14 iHash = HASH("DLC_MP_BIKER_M_DECL_5_0") BREAK
CASE 15 iHash = HASH("DLC_MP_BIKER_M_DECL_6_0") BREAK
CASE 16 iHash = HASH("DLC_MP_BIKER_M_DECL_7_0") BREAK
CASE 17 iHash = HASH("DLC_MP_BIKER_M_DECL_8_0") BREAK
CASE 18 iHash = HASH("DLC_MP_BIKER_M_DECL_9_0") BREAK
CASE 19 iHash = HASH("DLC_MP_BIKER_M_DECL_10_0") BREAK
CASE 20 iHash = HASH("DLC_MP_BIKER_M_DECL_11_0") BREAK
CASE 21 iHash = HASH("DLC_MP_BIKER_M_DECL_12_0") BREAK
CASE 22 iHash = HASH("DLC_MP_BIKER_M_DECL_13_0") BREAK
CASE 23 iHash = HASH("DLC_MP_BIKER_M_DECL_14_0") BREAK
CASE 24 iHash = HASH("DLC_MP_BIKER_M_DECL_15_0") BREAK
CASE 25 iHash = HASH("DLC_MP_BIKER_M_DECL_16_0") BREAK
CASE 26 iHash = HASH("DLC_MP_BIKER_M_DECL_17_0") BREAK
CASE 27 iHash = HASH("DLC_MP_BIKER_M_DECL_18_0") BREAK
CASE 28 iHash = HASH("DLC_MP_GR_M_DECL_0_0") BREAK
CASE 29 iHash = HASH("DLC_MP_GR_M_DECL_1_0") BREAK
CASE 30 iHash = HASH("DLC_MP_GR_M_DECL_2_0") BREAK
CASE 31 iHash = HASH("DLC_MP_GR_M_DECL_3_0") BREAK
CASE 32 iHash = HASH("DLC_MP_GR_M_DECL_4_0") BREAK
CASE 33 iHash = HASH("DLC_MP_AR_M_DECL_1_0") BREAK
CASE 34 iHash = HASH("DLC_MP_SMUG_M_DECL_0_0") BREAK
CASE 35 iHash = HASH("DLC_MP_SMUG_M_DECL_1_0") BREAK
CASE 36 iHash = HASH("DLC_MP_TUNER_M_DECL_0_0") BREAK
CASE 37 iHash = HASH("DLC_MP_TUNER_M_DECL_1_0") BREAK
CASE 38 iHash = HASH("DLC_MP_TUNER_M_DECL_2_0") BREAK
CASE 39 iHash = HASH("DLC_MP_TUNER_M_DECL_3_0") BREAK
CASE 40 iHash = HASH("DLC_MP_TUNER_M_DECL_4_0") BREAK
CASE 41 iHash = HASH("DLC_MP_TUNER_M_DECL_5_0") BREAK
CASE 42 iHash = HASH("DLC_MP_TUNER_M_DECL_6_0") BREAK
CASE 43 iHash = HASH("DLC_MP_TUNER_M_DECL_7_0") BREAK
CASE 44 iHash = HASH("DLC_MP_TUNER_M_DECL_37_0") BREAK
CASE 45 iHash = HASH("DLC_MP_TUNER_M_DECL_38_0") BREAK
#IF FEATURE_FIXER
CASE 46 iHash = HASH("DLC_MP_FIXER_M_DECL_0_0") BREAK
CASE 47 iHash = HASH("DLC_MP_FIXER_M_DECL_1_0") BREAK
CASE 48 iHash = HASH("DLC_MP_FIXER_M_DECL_2_0") BREAK
CASE 49 iHash = HASH("DLC_MP_FIXER_M_DECL_3_0") BREAK
CASE 50 iHash = HASH("DLC_MP_FIXER_M_DECL_4_0") BREAK
CASE 51 iHash = HASH("DLC_MP_FIXER_M_DECL_5_0") BREAK
#ENDIF
ENDSWITCH
ELSE
SWITCH iCount
CASE 0 iHash = HASH("DLC_MP_LTS_F_DECL_0_0") BREAK
CASE 1 iHash = HASH("DLC_MP_LOW_F_DECL_0_0") BREAK
CASE 2 iHash = HASH("DLC_MP_BIKER_F_DECL_0_1") BREAK
CASE 3 iHash = HASH("DLC_MP_BIKER_F_DECL_0_2") BREAK
CASE 4 iHash = HASH("DLC_MP_BIKER_F_DECL_0_3") BREAK
CASE 5 iHash = HASH("DLC_MP_BIKER_F_DECL_0_4") BREAK
CASE 6 iHash = HASH("DLC_MP_BIKER_F_DECL_0_5") BREAK
CASE 7 iHash = HASH("DLC_MP_BIKER_F_DECL_0_6") BREAK
CASE 8 iHash = HASH("DLC_MP_BIKER_F_DECL_0_7") BREAK
CASE 9 iHash = HASH("DLC_MP_BIKER_F_DECL_0_8") BREAK
CASE 10 iHash = HASH("DLC_MP_BIKER_F_DECL_1_0") BREAK
CASE 11 iHash = HASH("DLC_MP_BIKER_F_DECL_2_0") BREAK
CASE 12 iHash = HASH("DLC_MP_BIKER_F_DECL_3_0") BREAK
CASE 13 iHash = HASH("DLC_MP_BIKER_F_DECL_4_0") BREAK
CASE 14 iHash = HASH("DLC_MP_BIKER_F_DECL_5_0") BREAK
CASE 15 iHash = HASH("DLC_MP_BIKER_F_DECL_6_0") BREAK
CASE 16 iHash = HASH("DLC_MP_BIKER_F_DECL_7_0") BREAK
CASE 17 iHash = HASH("DLC_MP_BIKER_F_DECL_8_0") BREAK
CASE 18 iHash = HASH("DLC_MP_BIKER_F_DECL_9_0") BREAK
CASE 19 iHash = HASH("DLC_MP_BIKER_F_DECL_10_0") BREAK
CASE 20 iHash = HASH("DLC_MP_BIKER_F_DECL_11_0") BREAK
CASE 21 iHash = HASH("DLC_MP_BIKER_F_DECL_12_0") BREAK
CASE 22 iHash = HASH("DLC_MP_BIKER_F_DECL_13_0") BREAK
CASE 23 iHash = HASH("DLC_MP_BIKER_F_DECL_14_0") BREAK
CASE 24 iHash = HASH("DLC_MP_BIKER_F_DECL_15_0") BREAK
CASE 25 iHash = HASH("DLC_MP_BIKER_F_DECL_16_0") BREAK
CASE 26 iHash = HASH("DLC_MP_BIKER_F_DECL_17_0") BREAK
CASE 27 iHash = HASH("DLC_MP_BIKER_F_DECL_18_0") BREAK
CASE 28 iHash = HASH("DLC_MP_BIKER_F_DECL_19_0") BREAK
CASE 29 iHash = HASH("DLC_MP_BIKER_F_DECL_20_0") BREAK
CASE 30 iHash = HASH("DLC_MP_BIKER_F_DECL_21_0") BREAK
CASE 31 iHash = HASH("DLC_MP_BIKER_F_DECL_22_0") BREAK
CASE 32 iHash = HASH("DLC_MP_BIKER_F_DECL_23_0") BREAK
CASE 33 iHash = HASH("DLC_MP_BIKER_F_DECL_24_0") BREAK
CASE 34 iHash = HASH("DLC_MP_BIKER_F_DECL_25_0") BREAK
CASE 35 iHash = HASH("DLC_MP_BIKER_F_DECL_26_0") BREAK
CASE 36 iHash = HASH("DLC_MP_BIKER_F_DECL_27_0") BREAK
CASE 37 iHash = HASH("DLC_MP_GR_F_DECL_0_0") BREAK
CASE 38 iHash = HASH("DLC_MP_GR_F_DECL_1_0") BREAK
CASE 39 iHash = HASH("DLC_MP_GR_F_DECL_2_0") BREAK
CASE 40 iHash = HASH("DLC_MP_GR_F_DECL_3_0") BREAK
CASE 41 iHash = HASH("DLC_MP_GR_F_DECL_4_0") BREAK
CASE 42 iHash = HASH("DLC_MP_AR_F_DECL_1_0") BREAK
CASE 43 iHash = HASH("DLC_MP_SMUG_F_DECL_0_0") BREAK
CASE 44 iHash = HASH("DLC_MP_SMUG_F_DECL_1_0") BREAK
CASE 45 iHash = HASH("DLC_MP_TUNER_F_DECL_0_0") BREAK
CASE 46 iHash = HASH("DLC_MP_TUNER_F_DECL_1_0") BREAK
CASE 47 iHash = HASH("DLC_MP_TUNER_F_DECL_2_0") BREAK
CASE 48 iHash = HASH("DLC_MP_TUNER_F_DECL_3_0") BREAK
CASE 49 iHash = HASH("DLC_MP_TUNER_F_DECL_4_0") BREAK
CASE 50 iHash = HASH("DLC_MP_TUNER_F_DECL_5_0") BREAK
CASE 51 iHash = HASH("DLC_MP_TUNER_F_DECL_6_0") BREAK
CASE 52 iHash = HASH("DLC_MP_TUNER_F_DECL_7_0") BREAK
CASE 53 iHash = HASH("DLC_MP_TUNER_F_DECL_36_0") BREAK
CASE 54 iHash = HASH("DLC_MP_TUNER_F_DECL_37_0") BREAK
#IF FEATURE_FIXER
CASE 55 iHash = HASH("DLC_MP_FIXER_F_DECL_0_0") BREAK
CASE 56 iHash = HASH("DLC_MP_FIXER_F_DECL_1_0") BREAK
CASE 57 iHash = HASH("DLC_MP_FIXER_F_DECL_2_0") BREAK
CASE 58 iHash = HASH("DLC_MP_FIXER_F_DECL_3_0") BREAK
CASE 59 iHash = HASH("DLC_MP_FIXER_F_DECL_4_0") BREAK
CASE 60 iHash = HASH("DLC_MP_FIXER_F_DECL_5_0") BREAK
CASE 61 iHash = HASH("DLC_MP_FIXER_F_DECL_6_0") BREAK
CASE 62 iHash = HASH("DLC_MP_FIXER_F_DECL_7_0") BREAK
#ENDIF
ENDSWITCH
ENDIF
RETURN (iHash != 0)
ENDFUNC
PROC REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES()
INT iItemCount, iItemHash
INT iOutfitSlot
INT iSaveArraySlot = GET_SAVE_GAME_ARRAY_SLOT()
BOOl bMale = (GET_PACKED_STAT_INT(PACKED_CHAR_PICTURE, g_iPedComponentSlot) = 0)
scrShopPedComponent componentItem
REPEAT MAX_CUSTOM_OUTFIT_SLOTS iOutfitSlot
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL] != 0
IF bMale // Male
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL] <= 6
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", draw ", g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL])
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL] = 0
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_DECL] = 0
ENDIF
ELSE
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL] <= 5
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", draw ", g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL])
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL] = 0
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_DECL] = 0
ENDIF
ENDIF
iItemCount = 0
WHILE GET_DLC_CREW_EMBLEM_HASH(bMale, iItemCount, iItemHash)
GET_SHOP_PED_COMPONENT(iItemHash, componentItem)
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL] = componentItem.m_drawableIndex
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", draw ", g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL])
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_DECL] = 0
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_DECL] = 0
ENDIF
iItemCount++
ENDWHILE
ENDIF
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("sc_ExtraTattooDebug")
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewA[iOutfitSlot]
OR g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewB[iOutfitSlot]
OR g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewC[iOutfitSlot]
OR g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewD[iOutfitSlot]
OR g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewE[iOutfitSlot]
OR g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewF[iOutfitSlot]
PRINTLN("sc_ExtraTattooDebug: REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES")
DEBUG_PRINTCALLSTACK()
ENDIF
ENDIF
#ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewA[iOutfitSlot]
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", Crew A")
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewA[iOutfitSlot] = FALSE
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewB[iOutfitSlot]
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", Crew B")
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewB[iOutfitSlot] = FALSE
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewC[iOutfitSlot]
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", Crew C")
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewC[iOutfitSlot] = FALSE
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewD[iOutfitSlot]
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", Crew D")
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewD[iOutfitSlot] = FALSE
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewE[iOutfitSlot]
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", Crew E")
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewE[iOutfitSlot] = FALSE
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewF[iOutfitSlot]
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem in slot ", iOutfitSlot, ", Crew F")
g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_TatCrewF[iOutfitSlot] = FALSE
ENDIF
ENDREPEAT
IF GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_DECL) != 0
IF bMale
IF GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_DECL) <= 6
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem from stored clothes")
SET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_DECL, 0)
SET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_DECL, 0)
ENDIF
ELSE
IF GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_DECL) <= 5
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem from stored clothes")
SET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_DECL, 0)
SET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_DECL, 0)
ENDIF
ENDIF
iItemCount = 0
WHILE GET_DLC_CREW_EMBLEM_HASH(bMale, iItemCount, iItemHash)
GET_SHOP_PED_COMPONENT(iItemHash, componentItem)
IF GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_DECL) = componentItem.m_drawableIndex
PRINTLN("REMOVE_CREW_EMBLEMS_FROM_STORED_CLOTHES - Removing crew emblem from stored clothes")
SET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_DECL, 0)
SET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_DECL, 0)
ENDIF
iItemCount++
ENDWHILE
ENDIF
ENDPROC
FUNC BOOL GET_MP_OUTFIT_STORED_IN_SLOT(MP_OUTFITS_DATA &sOutfitsData, INT iOutfitSlot,Bool bApplyMasks = FALSE, BOOL bSpareSlot = FALSE)
INT iComp
INT iProp
INT iSaveArraySlot = GET_SAVE_GAME_ARRAY_SLOT()
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot]
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
PRINTLN("[AMEC] GET_MP_OUTFIT_STORED_IN_SLOT - Getting outfit : ",iOutfitSlot)
REPEAT NUM_PED_COMPONENTS iComp
// if its not a mask were getting or bApply masks is true grab data
if iComp != ENUM_TO_INT(PED_COMP_BERD)
or bApplyMasks
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp] != -1
sOutfitsData.iComponentDrawableID[iComp] = g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp]
sOutfitsData.iComponentTextureID[iComp] = g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][iComp]
CPRINTLN(DEBUG_PED_COMP, "GET_MP_OUTFIT_STORED_IN_SLOT - storing COMP: ",iComp, "ID: ",sOutfitsData.iComponentDrawableID[iComp] ," TXT:",sOutfitsData.iComponentTextureID[iComp] )
ENDIF
ENDIF
ENDREPEAT
REPEAT 9 iProp
IF g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][iProp] != -1
sOutfitsData.iPropDrawableID[iProp] = g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][iProp]
sOutfitsData.iPropTextureID[iProp] = g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][iProp]
CPRINTLN(DEBUG_PED_COMP, "GET_MP_OUTFIT_STORED_IN_SLOT - storing PROP: ",iProp, "ID: ",sOutfitsData.iPropDrawableID[iProp] ," TXT:",sOutfitsData.iPropTextureID[iProp] )
ENDIF
ENDREPEAT
sOutfitsData.iDLCTattooOverlay[0] = g_savedMPGlobalsNew.g_savedMPGlobals[iSaveArraySlot].MpSavedGeneral.iSavedOutfit_ShirtDecal[iOutfitSlot]
RETURN TRUE
ELSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_PED_COMP, "GET_MP_OUTFIT_STORED_IN_SLOT - FAILED - iOutfitSlot = ", iOutfitSlot)
CPRINTLN(DEBUG_PED_COMP, "GET_MP_OUTFIT_STORED_IN_SLOT - FAILED - bSaveOutfit_Stored = ", PICK_STRING(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot], "TRUE", "FALSE"))
#ENDIF
ENDIF
RETURN FALSE
ENDFUNC
PROC SET_MP_OUTFIT_STORED_IN_SLOT(PED_INDEX pedID, INT iOutfitSlot, BOOL bBlockDecalUpdate = FALSE, BOOL bSpareSlot = FALSE)
BOOL bSafeToApply = FALSE
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot]
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
bSafeToApply = TRUE
INT iComp
REPEAT NUM_PED_COMPONENTS iComp
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp] != -1
IF (g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp] >= GET_NUMBER_OF_PED_DRAWABLE_VARIATIONS(pedID, INT_TO_ENUM(PED_COMPONENT, iComp)))
OR (g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][iComp] >= GET_NUMBER_OF_PED_TEXTURE_VARIATIONS(pedID, INT_TO_ENUM(PED_COMPONENT, iComp), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp]))
PRINTLN("[AMEC] SET_MP_OUTFIT_STORED_IN_SLOT - Invalid variation detected: ",NATIVE_TO_INT(pedID),", outfit: ",iOutfitSlot, ", component: ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT, iComp)), ", variation: ", g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp], ",", g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][iComp])
bSafeToApply = FALSE
BREAKLOOP
ENDIF
ENDIF
ENDREPEAT
ENDIF
IF bSafeToApply
PRINTLN("[AMEC] SET_MP_OUTFIT_STORED_IN_SLOT - Setting outfit on ped: ",NATIVE_TO_INT(pedID),", outfit: ",iOutfitSlot)
INT iComp
INT iProp
REPEAT NUM_PED_COMPONENTS iComp
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp] != -1
IF (INT_TO_ENUM(PED_COMPONENT, iComp) != PED_COMP_BERD)
SET_PED_COMPONENT_VARIATION(pedID, INT_TO_ENUM(PED_COMPONENT, iComp), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][iComp])
ELSE
PED_COMP_NAME_ENUM eBeardItem
eBeardItem = GET_PED_COMP_ITEM_FROM_VARIATIONS(pedID, g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][iComp], COMP_TYPE_BERD)
SET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_BERD, eBeardItem, FALSE)
ENDIF
ENDIF
ENDREPEAT
//Re-apply berd to fix hair issues.
SET_PED_COMPONENT_VARIATION(pedID, PED_COMP_BERD, GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_BERD))
CLEAR_ALL_PED_PROPS(pedID)
REPEAT 9 iProp
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][iProp] != -1
IF (INT_TO_ENUM(PED_PROP_POSITION, iProp) = ANCHOR_HEAD)
AND IS_ITEM_A_HELMET(GET_ENTITY_MODEL(pedID), COMP_TYPE_PROPS, GET_PROP_ITEM_FROM_VARIATIONS(pedID, g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][iProp], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][iProp], ANCHOR_HEAD))
INT iPropIndex = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][iProp]
INT iTextureIndex = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][iProp]
INT iDLCNameHash = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(PLAYER_PED_ID()), ENUM_TO_INT(ANCHOR_HEAD), iPropIndex, iTextureIndex)
//Check if we should apply the alternate version of the helmet
IF GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iDLCNameHash) > 0
AND DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP)) != DOES_PLAYER_PREFER_VISOR_UP()
INT iRetNameHash = 0
PED_COMP_NAME_ENUM eAltPropName = DUMMY_PED_COMP
CPRINTLN(DEBUG_AMBIENT, "SET_MP_OUTFIT_STORED_IN_SLOT - grabbing alternate helmet details - old prop: ", iPropIndex, " old texture: ", iTextureIndex)
//Use this to get the details of the alternate prop
EXPENSIVE_GET_PROP_ALT_DATA(iDLCNameHash, 0, iPropIndex, iTextureIndex, iRetNameHash, eAltPropName)
CPRINTLN(DEBUG_AMBIENT, "SET_MP_OUTFIT_STORED_IN_SLOT - using the alt helmet in place of the outfit version new prop: ", iPropIndex, " new texture: ", iTextureIndex)
ENDIF
SET_PED_PROP_INDEX(pedID, INT_TO_ENUM(PED_PROP_POSITION, iProp),iPropIndex, iTextureIndex, TRUE)
SET_PED_HELMET_PROP_INDEX(pedID, iPropIndex, FALSE)
SET_PED_HELMET_TEXTURE_INDEX(pedID, iTextureIndex)
STORE_HELMET_VISOR_PROP_INDICES(pedID, iPropIndex, iTextureIndex)
ELSE
SET_PED_PROP_INDEX(pedID, INT_TO_ENUM(PED_PROP_POSITION, iProp), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][iProp], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][iProp], TRUE)
ENDIF
ENDIF
ENDREPEAT
// Keep parachute on
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_HAND] != 0
SET_PED_RESET_FLAG(pedID, PRF_DisableTakeOffParachutePack, TRUE)
MPGlobalsAmbience.bDisableTakeOffChute = TRUE
SET_PACKED_STAT_BOOL(PACKED_MP_IS_PARACHUTE_EQUIPED, TRUE)
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - PRF_DisableTakeOffParachutePack = TRUE")
ELSE
MPGlobalsAmbience.bDisableTakeOffChute = FALSE
SET_PACKED_STAT_BOOL(PACKED_MP_IS_PARACHUTE_EQUIPED, FALSE)
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - PRF_DisableTakeOffParachutePack = FALSE")
ENDIF
// Keep dunce hat
IF NETWORK_PLAYER_IS_CHEATER()
OR NETWORK_PLAYER_IS_BADSPORT()
IF GET_ENTITY_MODEL(PLAYER_PED_ID()) = MP_M_FREEMODE_01
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_BERD, BERD_FMM_0_0, FALSE)
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_PROPS, PROPS_FMM_DUNCE_HAT_1_0, FALSE)
ELSE
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_BERD, BERD_FMF_0_0, FALSE)
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_PROPS, PROPS_FMF_DUNCE_HAT_1_0, FALSE)
ENDIF
ENDIF
// Add/remove shirt decal
IF NOT bBlockDecalUpdate
#IF USE_TU_CHANGES
TATTOO_NAME_ENUM eShirtDecal = GET_TATTOO_ENUM_FROM_DLC_HASH(GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH), GET_TATTOO_FACTION_FOR_PED(pedID))
IF eShirtDecal != INVALID_TATTOO
SET_MP_TATTOO_CURRENT(eShirtDecal, FALSE)
ENDIF
eShirtDecal = GET_TATTOO_ENUM_FROM_DLC_HASH(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_ShirtDecal[iOutfitSlot], GET_TATTOO_FACTION_FOR_PED(pedID))
IF eShirtDecal != INVALID_TATTOO
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting t-shirt decal, enum=", eShirtDecal)
SET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH, g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_ShirtDecal[iOutfitSlot])
SET_MP_TATTOO_CURRENT(eShirtDecal, TRUE)
ENDIF
// Forced t-shirt decal.
INT iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_JBIB), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][ENUM_TO_INT(PED_COMP_JBIB)], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][ENUM_TO_INT(PED_COMP_JBIB)])
INT iDLCSpecialHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_SPECIAL), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][ENUM_TO_INT(PED_COMP_SPECIAL)], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][ENUM_TO_INT(PED_COMP_SPECIAL)])
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCJbibHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCSpecialHash, DLC_RESTRICTION_TAG_MULTI_DECAL, ENUM_TO_INT(SHOP_PED_COMPONENT))
PED_COMP_NAME_ENUM eTshirtItem
eTshirtItem = GET_PED_COMP_ITEM_FROM_VARIATIONS(pedID, g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][ENUM_TO_INT(PED_COMP_JBIB)], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][ENUM_TO_INT(PED_COMP_JBIB)], COMP_TYPE_JBIB)
eShirtDecal = GET_TORSO_DECAL_TATTOO_MP(GET_ENTITY_MODEL(pedID), COMP_TYPE_JBIB, eTshirtItem)
IF eShirtDecal != INVALID_TATTOO
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting forced JBIB t-shirt decal, enum=", eShirtDecal)
SET_MP_TATTOO_CURRENT(eShirtDecal, TRUE)
ELSE
// Try the special.
eTshirtItem = GET_PED_COMP_ITEM_FROM_VARIATIONS(pedID, g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][ENUM_TO_INT(PED_COMP_SPECIAL)], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][ENUM_TO_INT(PED_COMP_SPECIAL)], COMP_TYPE_SPECIAL)
eShirtDecal = GET_TORSO_DECAL_TATTOO_MP(GET_ENTITY_MODEL(pedID), COMP_TYPE_SPECIAL, eTshirtItem)
IF eShirtDecal != INVALID_TATTOO
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting forced SPECIAL t-shirt decal, enum=", eShirtDecal)
SET_MP_TATTOO_CURRENT(eShirtDecal, TRUE)
ENDIF
ENDIF
ENDIF
#ENDIF
// checking if a crew logo was stored on this outfit
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewA[iOutfitSlot]
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting crew A")
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, TRUE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, FALSE)
ELSE
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, FALSE)
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewB[iOutfitSlot]
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting crew B")
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, FALSE)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, TRUE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, FALSE)
ELSE
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, FALSE)
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewC[iOutfitSlot]
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting crew C")
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, FALSE)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, TRUE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, FALSE)
ELSE
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, FALSE)
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewD[iOutfitSlot]
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting crew D")
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, FALSE)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, TRUE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, FALSE)
ELSE
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, FALSE)
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewE[iOutfitSlot]
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting crew E")
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, FALSE)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, TRUE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, FALSE)
ELSE
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, FALSE)
ENDIF
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewF[iOutfitSlot]
PRINTLN("SET_MP_OUTFIT_STORED_IN_SLOT - Setting crew F")
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D, FALSE)
SET_BITSET_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E, FALSE)
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, TRUE)
ELSE
SET_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F, FALSE)
ENDIF
ENDIF
CPRINTLN(DEBUG_PED_COMP, "SET_MP_OUTFIT_STORED_IN_SLOT - PUT ON OUTFIT ", iOutfitSlot)
#IF IS_DEBUG_BUILD
ELSE
CPRINTLN(DEBUG_PED_COMP, "SET_MP_OUTFIT_STORED_IN_SLOT - FAILED - iOutfitSlot = ", iOutfitSlot)
CPRINTLN(DEBUG_PED_COMP, "SET_MP_OUTFIT_STORED_IN_SLOT - FAILED - bSaveOutfit_Stored = ", PICK_STRING(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot], "TRUE", "FALSE"))
#ENDIF
ENDIF
ENDPROC
FUNC STRING GET_MP_OUTFIT_NAME( MP_OUTFIT_ENUM eOutfit)
SWITCH eOutfit
//Heists:
CASE OUTFIT_MP_DEFAULT RETURN "HO_NONE" BREAK // None
CASE OUTFIT_MP_FREEMODE RETURN "HO_NONE" BREAK // None
CASE OUTFIT_HEIST_STREET_0 RETURN "HO_STREET_0" BREAK // Street 0
CASE OUTFIT_HEIST_STREET_1 RETURN "HO_STREET_1" BREAK // Street 1
CASE OUTFIT_HEIST_STREET_2 RETURN "HO_STREET_2" BREAK // Street 2
CASE OUTFIT_HEIST_STREET_3 RETURN "HO_STREET_3" BREAK // Street 3
CASE OUTFIT_HEIST_POLICE_0 RETURN "HO_POLICE_0" BREAK // Police 0
CASE OUTFIT_HEIST_CASUAL_0 RETURN "HO_CASUAL_0" BREAK // Casual 0
CASE OUTFIT_HEIST_CASUAL_1 RETURN "HO_CASUAL_1" BREAK // Casual 1
CASE OUTFIT_HEIST_CASUAL_2 RETURN "HO_CASUAL_2" BREAK // Casual 2
CASE OUTFIT_HEIST_CASUAL_3 RETURN "HO_CASUAL_3" BREAK // Casual 3
CASE OUTFIT_HEIST_DRIVER_0 RETURN "HO_DRIVER_0" BREAK // Driver 0
CASE OUTFIT_HEIST_DRIVER_1 RETURN "HO_DRIVER_1" BREAK // Driver 1
CASE OUTFIT_HEIST_DRIVER_2 RETURN "HO_DRIVER_2" BREAK // Driver 2
CASE OUTFIT_HEIST_DRIVER_3 RETURN "HO_DRIVER_3" BREAK // Driver 3
CASE OUTFIT_HEIST_CASUAL_STEALTH_0 RETURN "HO_CAS_STE_0" BREAK // Casual Stealth 0
CASE OUTFIT_HEIST_CASUAL_STEALTH_1 RETURN "HO_CAS_STE_1" BREAK // Casual Stealth 1
CASE OUTFIT_HEIST_CASUAL_STEALTH_2 RETURN "HO_CAS_STE_2" BREAK // Casual Stealth 2
CASE OUTFIT_HEIST_CASUAL_STEALTH_3 RETURN "HO_CAS_STE_3" BREAK // Casual Stealth 3
CASE OUTFIT_HEIST_CASUAL_PILOT_0 RETURN "HO_CAS_PIL_0" BREAK // Casual Pilot 0
CASE OUTFIT_HEIST_CASUAL_PILOT_1 RETURN "HO_CAS_PIL_1" BREAK // Casual Pilot 1
CASE OUTFIT_HEIST_CASUAL_PILOT_2 RETURN "HO_CAS_PIL_2" BREAK // Casual Pilot 2
CASE OUTFIT_HEIST_STREET_COMBAT_0 RETURN "HO_STR_CBT_0" BREAK // Casual Combat 0
CASE OUTFIT_HEIST_STREET_COMBAT_1 RETURN "HO_STR_CBT_1" BREAK // Casual Combat 1
CASE OUTFIT_HEIST_STREET_COMBAT_2 RETURN "HO_STR_CBT_2" BREAK // Casual Combat 2
CASE OUTFIT_HEIST_STREET_COMBAT_3 RETURN "HO_STR_CBT_3" BREAK // Casual Combat 3
CASE OUTFIT_HEIST_PRISONER_0 RETURN "HO_PRI_0" BREAK // Prisoner
CASE OUTFIT_HEIST_PRISON_OFFICER_0 RETURN "HO_PRI_OFF_0" BREAK // Prison Officer
CASE OUTFIT_HEIST_TACTICAL_STEALTH_0 RETURN "HO_TAC_STE_1" BREAK // Tactical Stealth 0
CASE OUTFIT_HEIST_TACTICAL_STEALTH_1 RETURN "HO_TAC_STE_2" BREAK // Tactical Stealth 1
CASE OUTFIT_HEIST_TACTICAL_STEALTH_2 RETURN "HO_TAC_STE_3" BREAK // Tactical Stealth 2
CASE OUTFIT_HEIST_TACTICAL_STEALTH_3 RETURN "HO_TAC_STE_0" BREAK // Tactical Stealth 3
CASE OUTFIT_HEIST_LIGHT_COMBAT_0 RETURN "HO_LTE_CBT_0" BREAK // Light Combat 0
CASE OUTFIT_HEIST_LIGHT_COMBAT_1 RETURN "HO_LTE_CBT_1" BREAK // Light Combat 1
CASE OUTFIT_HEIST_LIGHT_COMBAT_2 RETURN "HO_LTE_CBT_2" BREAK // Light Combat 2
CASE OUTFIT_HEIST_LIGHT_COMBAT_3 RETURN "HO_LTE_CBT_3" BREAK // Light Combat 3
CASE OUTFIT_HEIST_HEAVY_COMBAT_0 RETURN "HO_HVY_CBT_0" BREAK // Heavy Combat 0
CASE OUTFIT_HEIST_HEAVY_COMBAT_1 RETURN "HO_HVY_CBT_1" BREAK // Heavy Combat 1
CASE OUTFIT_HEIST_HEAVY_COMBAT_2 RETURN "HO_HVY_CBT_2" BREAK // Heavy Combat 2
CASE OUTFIT_HEIST_HEAVY_COMBAT_3 RETURN "HO_HVY_CBT_3" BREAK // Heavy Combat 3
CASE OUTFIT_HEIST_STEALTH_PILOT_0 RETURN "HO_STE_PIL_0" BREAK // Stealth Pilot 0
CASE OUTFIT_HEIST_STEALTH_PILOT_1 RETURN "HO_STE_PIL_1" BREAK // Stealth Pilot 1
CASE OUTFIT_HEIST_STEALTH_PILOT_2 RETURN "HO_STE_PIL_2" BREAK // Stealth Pilot 2
CASE OUTFIT_HEIST_STEALTH_PILOT_3 RETURN "HO_STE_PIL_3" BREAK // Stealth Pilot 3
CASE OUTFIT_HEIST_REFUSE_COLLECTOR_0 RETURN "HO_REF_COL_0" BREAK // Refuse Collector 0
CASE OUTFIT_HEIST_REFUSE_COLLECTOR_1 RETURN "HO_REF_COL_1" BREAK // Refuse Collector 1
CASE OUTFIT_HEIST_NIGHT_BIKER_0 RETURN "HO_NGT_BKR_0" BREAK // Night Biker 0
CASE OUTFIT_HEIST_NIGHT_BIKER_1 RETURN "HO_NGT_BKR_1" BREAK // Night Biker 1
CASE OUTFIT_HEIST_NIGHT_BIKER_2 RETURN "HO_NGT_BKR_2" BREAK // Night Biker 2
CASE OUTFIT_HEIST_NIGHT_BIKER_3 RETURN "HO_NGT_BKR_3" BREAK // Night Biker 3
CASE OUTFIT_HEIST_TOURIST_0 RETURN "HO_TOURIST_0" BREAK // Tourist 0
CASE OUTFIT_HEIST_TOURIST_1 RETURN "HO_TOURIST_1" BREAK // Tourist 1
CASE OUTFIT_HEIST_TOURIST_2 RETURN "HO_TOURIST_2" BREAK // Tourist 2
CASE OUTFIT_HEIST_TOURIST_3 RETURN "HO_TOURIST_3" BREAK // Tourist 3
CASE OUTFIT_HEIST_SMART_SUITS_0 RETURN "HO_SMA_S_0" BREAK // Business Suit 0
CASE OUTFIT_HEIST_SMART_SUITS_1 RETURN "HO_SMA_S_1" BREAK // Business Suit 1
CASE OUTFIT_HEIST_SMART_SUITS_2 RETURN "HO_SMA_S_2" BREAK // Business Suit 2
CASE OUTFIT_HEIST_SMART_SUITS_3 RETURN "HO_SMA_S_3" BREAK // Business Suit 3
CASE OUTFIT_HEIST_SLOPPY_SUITS_0 RETURN "HO_SLO_S_0" BREAK // Sloppy Suit 0
CASE OUTFIT_HEIST_SLOPPY_SUITS_1 RETURN "HO_SLO_S_1" BREAK // Sloppy Suit 1
CASE OUTFIT_HEIST_SLOPPY_SUITS_2 RETURN "HO_SLO_S_2" BREAK // Sloppy Suit 2
CASE OUTFIT_HEIST_SLOPPY_SUITS_3 RETURN "HO_SLO_S_3" BREAK // Sloppy Suit 3
CASE OUTFIT_HEIST_SHARP_SUITS_0 RETURN "HO_SHA_S_0" BREAK // Sharp Suit 0
CASE OUTFIT_HEIST_SHARP_SUITS_1 RETURN "HO_SHA_S_1" BREAK // Sharp Suit 1
CASE OUTFIT_HEIST_SHARP_SUITS_2 RETURN "HO_SHA_S_2" BREAK // Sharp Suit 2
CASE OUTFIT_HEIST_SHARP_SUITS_3 RETURN "HO_SHA_S_3" BREAK // Sharp Suit 3
CASE OUTFIT_HEIST_MINIMALIST_SUITS_0 RETURN "HO_MIN_S_0" BREAK // Minimalist Suit 0
CASE OUTFIT_HEIST_MINIMALIST_SUITS_1 RETURN "HO_MIN_S_1" BREAK // Minimalist Suit 1
CASE OUTFIT_HEIST_MINIMALIST_SUITS_2 RETURN "HO_MIN_S_2" BREAK // Minimalist Suit 2
CASE OUTFIT_HEIST_MINIMALIST_SUITS_3 RETURN "HO_MIN_S_3" BREAK // Minimalist Suit 3
CASE OUTFIT_HEIST_TUXEDOS_0 RETURN "HO_TUX_0" BREAK // Tuxedo 0
CASE OUTFIT_HEIST_TUXEDOS_1 RETURN "HO_TUX_1" BREAK // Tuxedo 1
CASE OUTFIT_HEIST_TUXEDOS_2 RETURN "HO_TUX_2" BREAK // Tuxedo 2
CASE OUTFIT_HEIST_TUXEDOS_3 RETURN "HO_TUX_3" BREAK // Tuxedo 3
CASE OUTFIT_HEIST_HAZCHEM_0 RETURN "HO_HAZ_0" BREAK // Hazchem 0
CASE OUTFIT_HEIST_HAZCHEM_1 RETURN "HO_HAZ_1" BREAK // Hazchem 1
CASE OUTFIT_HEIST_HAZCHEM_2 RETURN "HO_HAZ_2" BREAK // Hazchem 2
CASE OUTFIT_HEIST_HAZCHEM_3 RETURN "HO_HAZ_3" BREAK // Hazchem 3
CASE OUTFIT_HEIST_COVERALLS_0 RETURN "HO_COV_0" BREAK // Coveralls 0
CASE OUTFIT_HEIST_COVERALLS_1 RETURN "HO_COV_1" BREAK // Coveralls 1
CASE OUTFIT_HEIST_COVERALLS_2 RETURN "HO_COV_2" BREAK // Coveralls 2
CASE OUTFIT_HEIST_COVERALLS_3 RETURN "HO_COV_3" BREAK // Coveralls 3
CASE OUTFIT_HEIST_FLIGHT_SUIT_0 RETURN "HO_FLYS_0" BREAK // flight suite 0
CASE OUTFIT_HEIST_FLIGHT_SUIT_1 RETURN "HO_FLYS_1" BREAK // flight suite 1
CASE OUTFIT_HEIST_FLIGHT_SUIT_2 RETURN "HO_FLYS_2" BREAK // flight suite 2
CASE OUTFIT_HEIST_FLIGHT_SUIT_3 RETURN "HO_FLYS_3" BREAK // flight suite 3
//LTS VS missions:
CASE OUTFIT_RAPUNZEL_ATTACK RETURN "HO_OUT_RP1" BREAK
CASE OUTFIT_RAPUNZEL_DEFEND RETURN "HO_OUT_RP2" BREAK
CASE OUTFIT_T_MASKED_NIGHT RETURN "HO_OUT_MSKN" BREAK
CASE OUTFIT_T_MASKED_TUNDRA RETURN "HO_OUT_MSKT" BREAK
CASE OUTFIT_T_MASKED_FOREST RETURN "HO_OUT_MSKF" BREAK
CASE OUTFIT_FOXHUNT_FOX RETURN "HO_OUT_FOX1" BREAK
CASE OUTFIT_FOXHUNT_FOX_ALT RETURN "HO_OUT_FOX2" BREAK
CASE OUTFIT_FOXHUNT_HOUND RETURN "HO_OUT_HND1" BREAK
CASE OUTFIT_PRISON_POLICE_OFFICER_VS RETURN "HO_PB_POLICE" BREAK
CASE OUTFIT_PRISON_PRISONER_VS RETURN "HO_PB_PRISONER" BREAK
CASE OUTFIT_MASK_BALACLAVAFULL RETURN "HO_MSK_BCV" BREAK
CASE OUTFIT_MASK_REBREATHER RETURN "HO_MSK_BRTH" BREAK
CASE OUTFIT_MASK_BALACLAVA RETURN "HO_MSK_BCV2" BREAK
CASE OUTFIT_MASK_GASMASK RETURN "HO_MSK_GMS" BREAK
//---MP other---
CASE OUTFIT_MASK_PIG RETURN "HO_MSK_PIG" BREAK
CASE OUTFIT_MASK_BIGSKULL RETURN "HO_MSK_BSK" BREAK
CASE OUTFIT_MASK_MONKEYSMOKING RETURN "HO_MSK_POGO"BREAK
CASE OUTFIT_MASK_HOCKEYJASON RETURN "HO_MSK_HCK" BREAK
CASE OUTFIT_MASK_APE RETURN "HO_MSK_APE" BREAK
CASE OUTFIT_MASK_CARNIVAL RETURN "HO_MSK_CNVL"BREAK
CASE OUTFIT_MASK_GOBLIN RETURN "HO_MSK_GBL" BREAK
CASE OUTFIT_MASK_SANTA RETURN "HO_MSK_SNT" BREAK
CASE OUTFIT_MASK_CREEPYMOOSE RETURN "HO_MSK_MOS" BREAK
CASE OUTFIT_MASK_SNOWMANHEAD RETURN "HO_MSK_SNW" BREAK
CASE OUTFIT_MASK_MASQUERADEEYES RETURN "HO_MSK_MQE" BREAK
CASE OUTFIT_MASK_MASQUERADENOSEY RETURN "HO_MSK_MQN" BREAK
CASE OUTFIT_MASK_CREEPYBABY RETURN "HO_MSK_BBY" BREAK
CASE OUTFIT_MASK_HOCKEYBLUE RETURN "HO_MSK_HCK2"BREAK
CASE OUTFIT_MASK_HOCKEYSKULL RETURN "HO_MSK_HCK3"BREAK
CASE OUTFIT_MASK_WARRIOR RETURN "HO_MSK_WRR" BREAK
CASE OUTFIT_MASK_CAT RETURN "HO_MSK_CAT" BREAK
CASE OUTFIT_MASK_FOX RETURN "HO_MSK_FOX" BREAK
CASE OUTFIT_MASK_OWL RETURN "HO_MSK_OWL" BREAK
CASE OUTFIT_MASK_RACCOON RETURN "HO_MSK_RCN" BREAK
CASE OUTFIT_MASK_BROWNBEAR RETURN "HO_MSK_BBR" BREAK
CASE OUTFIT_MASK_BISON RETURN "HO_MSK_BSN" BREAK
CASE OUTFIT_MASK_BULL RETURN "HO_MSK_BUL" BREAK
CASE OUTFIT_MASK_EAGLE RETURN "HO_MSK_EGL" BREAK
CASE OUTFIT_MASK_VULTURE RETURN "HO_MSK_VLT" BREAK
CASE OUTFIT_MASK_WOLF RETURN "HO_MSK_WLF" BREAK
CASE OUTFIT_HOS_SUIT RETURN "HO_OUT_SUIT" BREAK
CASE OUTFIT_REFUSE_COLLECTOR RETURN "HO_OUT_REFC" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_0 RETURN "HO_OUT_LOW0" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_1 RETURN "HO_OUT_LOW1" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_2 RETURN "HO_OUT_LOW2" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_3 RETURN "HO_OUT_LOW3" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_4 RETURN "HO_OUT_LOW4" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_5 RETURN "HO_OUT_LOW5" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_6 RETURN "HO_OUT_LOW6" BREAK
CASE OUTFIT_LOW_FLOW_LOWRIDER_7 RETURN "HO_OUT_LOW7" BREAK
CASE OUTFIT_LOW_FLOW_VAGOS_0
IF IS_PLAYER_FEMALE()
RETURN "HO_OUT_VAG0F"
ELSE
RETURN "HO_OUT_VAG0"
ENDIF
BREAK
CASE OUTFIT_LOW_FLOW_VAGOS_1
IF IS_PLAYER_FEMALE()
RETURN "HO_OUT_VAG1F"
ELSE
RETURN "HO_OUT_VAG1"
ENDIF
BREAK
CASE OUTFIT_LOW_FLOW_VAGOS_2
IF IS_PLAYER_FEMALE()
RETURN "HO_OUT_VAG2F"
ELSE
RETURN "HO_OUT_VAG2"
ENDIF
BREAK
CASE OUTFIT_LOW_FLOW_VAGOS_3
IF IS_PLAYER_FEMALE()
RETURN "HO_OUT_VAG3F"
ELSE
RETURN "HO_OUT_VAG3"
ENDIF
BREAK
CASE OUTFIT_LOW_FLOW_BALLAS_0 RETURN "HO_OUT_BAL0" BREAK
CASE OUTFIT_LOW_FLOW_BALLAS_1 RETURN "HO_OUT_BAL1" BREAK
CASE OUTFIT_LOW_FLOW_BALLAS_2 RETURN "HO_OUT_BAL2" BREAK
CASE OUTFIT_LOW_FLOW_BALLAS_3 RETURN "HO_OUT_BAL3" BREAK
CASE OUTFIT_LOW_FLOW_FUNERAL_0 RETURN "HO_OUT_FUNL0" BREAK
CASE OUTFIT_LOW_FLOW_FUNERAL_1 RETURN "HO_OUT_FUNL1" BREAK
CASE OUTFIT_LOW_FLOW_FUNERAL_2 RETURN "HO_OUT_FUNL2" BREAK
CASE OUTFIT_LOW_FLOW_FUNERAL_3 RETURN "HO_OUT_FUNL3" BREAK
ENDSWITCH
SWITCH eOutfit
//HALLOWEEN OUTFITS
CASE OUTFIT_VERSUS_HAL_MANIACS_0 RETURN "VS_OUTFIT_38" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_1 RETURN "VS_OUTFIT_38" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_2 RETURN "VS_OUTFIT_38" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_3 RETURN "VS_OUTFIT_38" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_4 RETURN "VS_OUTFIT_38" BREAK
CASE OUTFIT_VERSUS_HAL_MANIACS_5 RETURN "VS_OUTFIT_38" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_0 RETURN "VS_OUTFIT_39" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_1 RETURN "VS_OUTFIT_39" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_2 RETURN "VS_OUTFIT_39" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_3 RETURN "VS_OUTFIT_39" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_4 RETURN "VS_OUTFIT_39" BREAK
CASE OUTFIT_VERSUS_HAL_HOWLERS_5 RETURN "VS_OUTFIT_39" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_0 RETURN "VS_OUTFIT_40" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_1 RETURN "VS_OUTFIT_40" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_2 RETURN "VS_OUTFIT_40" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_3 RETURN "VS_OUTFIT_40" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_4 RETURN "VS_OUTFIT_40" BREAK
CASE OUTFIT_VERSUS_HAL_RETILIANS_5 RETURN "VS_OUTFIT_40" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_0 RETURN "VS_OUTFIT_41" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_1 RETURN "VS_OUTFIT_41" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_2 RETURN "VS_OUTFIT_41" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_3 RETURN "VS_OUTFIT_41" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_4 RETURN "VS_OUTFIT_41" BREAK
CASE OUTFIT_VERSUS_HAL_SATANS_5 RETURN "VS_OUTFIT_41" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_0 RETURN "VS_OUTFIT_42" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_1 RETURN "VS_OUTFIT_42" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_2 RETURN "VS_OUTFIT_42" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_3 RETURN "VS_OUTFIT_42" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_4 RETURN "VS_OUTFIT_42" BREAK
CASE OUTFIT_VERSUS_HAL_DOUBLE_5 RETURN "VS_OUTFIT_42" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_0 RETURN "VS_OUTFIT_43" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_1 RETURN "VS_OUTFIT_43" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_2 RETURN "VS_OUTFIT_43" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_3 RETURN "VS_OUTFIT_43" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_4 RETURN "VS_OUTFIT_43" BREAK
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_5 RETURN "VS_OUTFIT_43" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_0 RETURN "VS_OUTFIT_44" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_1 RETURN "VS_OUTFIT_44" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_2 RETURN "VS_OUTFIT_44" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_3 RETURN "VS_OUTFIT_44" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_4 RETURN "VS_OUTFIT_44" BREAK
CASE OUTFIT_VERSUS_HAL_SUBURBIA_5 RETURN "VS_OUTFIT_44" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_0 RETURN "VS_OUTFIT_45" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_1 RETURN "VS_OUTFIT_45" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_2 RETURN "VS_OUTFIT_45" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_3 RETURN "VS_OUTFIT_45" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_4 RETURN "VS_OUTFIT_45" BREAK
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_5 RETURN "VS_OUTFIT_45" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_0 RETURN "VS_OUTFIT_46" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_1 RETURN "VS_OUTFIT_46" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_2 RETURN "VS_OUTFIT_46" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_3 RETURN "VS_OUTFIT_46" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_4 RETURN "VS_OUTFIT_46" BREAK
CASE OUTFIT_VERSUS_HAL_PSYCHOS_5 RETURN "VS_OUTFIT_46" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_0 RETURN "VS_OUTFIT_47" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_1 RETURN "VS_OUTFIT_47" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_2 RETURN "VS_OUTFIT_47" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_3 RETURN "VS_OUTFIT_47" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_4 RETURN "VS_OUTFIT_47" BREAK
CASE OUTFIT_VERSUS_HAL_UNDEAD_5 RETURN "VS_OUTFIT_47" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_0 RETURN "VS_OUTFIT_48" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_1 RETURN "VS_OUTFIT_48" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_2 RETURN "VS_OUTFIT_48" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_3 RETURN "VS_OUTFIT_48" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_4 RETURN "VS_OUTFIT_48" BREAK
CASE OUTFIT_VERSUS_HAL_DWELLERS_5 RETURN "VS_OUTFIT_48" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_0 RETURN "VS_OUTFIT_49" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_1 RETURN "VS_OUTFIT_49" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_2 RETURN "VS_OUTFIT_49" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_3 RETURN "VS_OUTFIT_49" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_4 RETURN "VS_OUTFIT_49" BREAK
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_5 RETURN "VS_OUTFIT_49" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_SCUBA RETURN "GOO_SCUBA"
CASE OUTFIT_GANGOPS_HEIST_SCUBA_NOTANK RETURN "GOO_SCUBA2"
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_0 RETURN "GOO_PARA_B_0"
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_1 RETURN "GOO_PARA_B_1"
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_0 RETURN "GOO_PARA_G_0"
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_1 RETURN "GOO_PARA_G_1"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_0 RETURN "GOO_MEDT1_0"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_1 RETURN "GOO_MEDT1_1"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_2 RETURN "GOO_MEDT1_2"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_3 RETURN "GOO_MEDT1_3"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_0 RETURN "GOO_MEDT2_0"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_1 RETURN "GOO_MEDT2_1"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_2 RETURN "GOO_MEDT2_2"
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_3 RETURN "GOO_MEDT2_3"
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_0 RETURN "GOO_MODST_0"
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_1 RETURN "GOO_MODST_1"
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_2 RETURN "GOO_MODST_2"
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_3 RETURN "GOO_MODST_3"
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_0 RETURN "GOO_CASPIL_0"
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_1 RETURN "GOO_CASPIL_1"
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_2 RETURN "GOO_CASPIL_2"
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_3 RETURN "GOO_CASPIL_3"
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_0 RETURN "GOO_FIGPIL_0"
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_1 RETURN "GOO_FIGPIL_1"
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_2 RETURN "GOO_FIGPIL_2"
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_3 RETURN "GOO_FIGPIL_3"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_0 RETURN "GOO_HTRIOT_0"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_1 RETURN "GOO_HTRIOT_1"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_2 RETURN "GOO_HTRIOT_2"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_3 RETURN "GOO_HTRIOT_3"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_0 RETURN "GOO_HTIMP_0"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_1 RETURN "GOO_HTIMP_1"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_2 RETURN "GOO_HTIMP_2"
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_3 RETURN "GOO_HTIMP_3"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_0 RETURN "GOO_MTMASK_0"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_1 RETURN "GOO_MTMASK_1"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_2 RETURN "GOO_MTMASK_2"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_3 RETURN "GOO_MTMASK_3"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_0 RETURN "GOO_MTREB_0"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_1 RETURN "GOO_MTREB_1"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_2 RETURN "GOO_MTREB_2"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_3 RETURN "GOO_MTREB_3"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_0 RETURN "GOO_MTHAVC_0"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_1 RETURN "GOO_MTHAVC_1"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_2 RETURN "GOO_MTHAVC_2"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_3 RETURN "GOO_MTHAVC_3"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_0 RETURN "GOO_MTADPT_0"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_1 RETURN "GOO_MTADPT_1"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_2 RETURN "GOO_MTADPT_2"
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_3 RETURN "GOO_MTADPT_3"
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_0 RETURN "GOO_SUBDRV_0"
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_1 RETURN "GOO_SUBDRV_1"
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_2 RETURN "GOO_SUBDRV_2"
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_3 RETURN "GOO_SUBDRV_3"
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_0 RETURN "GOO_HVYCGR_0"
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_1 RETURN "GOO_HVYCGR_1"
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_2 RETURN "GOO_HVYCGR_2"
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_3 RETURN "GOO_HVYCGR_3"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_0 RETURN "GOO_LTTACT_0"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_1 RETURN "GOO_LTTACT_1"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_2 RETURN "GOO_LTTACT_2"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_3 RETURN "GOO_LTTACT_3"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_0 RETURN "GOO_LTCOMB_0"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_1 RETURN "GOO_LTCOMB_1"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_2 RETURN "GOO_LTCOMB_2"
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_3 RETURN "GOO_LTCOMB_3"
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_0 RETURN "GOO_CLSSTL_0"
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_1 RETURN "GOO_CLSSTL_1"
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_2 RETURN "GOO_CLSSTL_2"
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_3 RETURN "GOO_CLSSTL_3"
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_0 RETURN "GOO_MLTCAM_0"
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_1 RETURN "GOO_MLTCAM_1"
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_2 RETURN "GOO_MLTCAM_2"
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_3 RETURN "GOO_MLTCAM_3"
CASE OUTFIT_GANGOPS_HEIST_GORKA_0 RETURN "GOO_GRK_0"
CASE OUTFIT_GANGOPS_HEIST_GORKA_1 RETURN "GOO_GRK_1"
CASE OUTFIT_GANGOPS_HEIST_GORKA_2 RETURN "GOO_GRK_2"
CASE OUTFIT_GANGOPS_HEIST_GORKA_3 RETURN "GOO_GRK_3"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_0 RETURN "SL_CLOWN_01" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_1 RETURN "SL_CLOWN_02" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_2 RETURN "SL_CLOWN_03" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_3 RETURN "SL_CLOWN_04" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_4 RETURN "SL_CLOWN_05" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_5 RETURN "SL_CLOWN_06" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_6 RETURN "SL_CLOWN_07" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_7 RETURN "SL_CLOWN_08" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_0 RETURN "SL_GREY_01" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_1 RETURN "SL_GREY_02" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_2 RETURN "SL_GREY_03" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_3 RETURN "SL_GREY_04" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_4 RETURN "SL_GREY_05" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_5 RETURN "SL_GREY_06" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_6 RETURN "SL_GREY_07" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_7 RETURN "SL_GREY_08" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_0 RETURN "SL_ALIEN_01" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_1 RETURN "SL_ALIEN_02" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_2 RETURN "SL_ALIEN_03" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_3 RETURN "SL_ALIEN_04" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_4 RETURN "SL_ALIEN_05" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_5 RETURN "SL_ALIEN_06" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_6 RETURN "SL_ALIEN_07" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_7 RETURN "SL_ALIEN_08" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_0 RETURN "SL_BROWN_01" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_1 RETURN "SL_BROWN_02" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_2 RETURN "SL_BROWN_03" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_3 RETURN "SL_BROWN_04" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_4 RETURN "SL_BROWN_05" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_5 RETURN "SL_BROWN_06" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_6 RETURN "SL_BROWN_07" BREAK
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_7 RETURN "SL_BROWN_08" BREAK
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_TARGET_0 RETURN "HT_BLACKTARG"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_0 RETURN "HT_BLACK_00"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_1 RETURN "HT_BLACK_01"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_2 RETURN "HT_BLACK_02"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_3 RETURN "HT_BLACK_03"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_4 RETURN "HT_BLACK_04"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_5 RETURN "HT_BLACK_05"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_6 RETURN "HT_BLACK_06"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_7 RETURN "HT_BLACK_07"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_TARGET_0 RETURN "HT_GREENTARG"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_0 RETURN "HT_GREEN_00"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_1 RETURN "HT_GREEN_01"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_2 RETURN "HT_GREEN_02"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_3 RETURN "HT_GREEN_03"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_4 RETURN "HT_GREEN_04"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_5 RETURN "HT_GREEN_05"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_6 RETURN "HT_GREEN_06"
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_7 RETURN "HT_GREEN_07"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_ROBBER_RED RETURN "MC_VJ_RED"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_ROBBER_BLUE RETURN "MC_VJ_BLU"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_ROBBER_WHITE RETURN "MC_VJ_WHI"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_ROBBER_GRAY RETURN "MC_VJ_GRA"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_BLUE RETURN "MC_VJ_FCB"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_RED RETURN "MC_VJ_FCR"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_WHITE RETURN "MC_VJ_FCW"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_GREEN RETURN "MC_VJ_FCG"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_ORANGE RETURN "MC_VJ_FCO"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_PURPLE RETURN "MC_VJ_FCPU"
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_PINK RETURN "MC_VJ_FCPI"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_0 RETURN "MC_DTB_PU0"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_1 RETURN "MC_DTB_PU1"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_2 RETURN "MC_DTB_PU2"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_3 RETURN "MC_DTB_PU3"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_0 RETURN "MC_DTB_OR0"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_1 RETURN "MC_DTB_OR1"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_2 RETURN "MC_DTB_OR2"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_3 RETURN "MC_DTB_OR3"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_0 RETURN "MC_DTB_PI0"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_1 RETURN "MC_DTB_PI1"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_2 RETURN "MC_DTB_PI2"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_3 RETURN "MC_DTB_PI3"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_0 RETURN "MC_DTB_GR0"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_1 RETURN "MC_DTB_GR1"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_2 RETURN "MC_DTB_GR2"
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_3 RETURN "MC_DTB_GR3"
CASE OUTFIT_VERSUS_HIDDEN_SUMORUN_PURPLE_0 RETURN "MC_SR_PU0"
CASE OUTFIT_VERSUS_HIDDEN_SUMORUN_ORANGE_0 RETURN "MC_SR_OR0"
CASE OUTFIT_VERSUS_HIDDEN_SUMORUN_PINK_0 RETURN "MC_SR_OI0"
CASE OUTFIT_VERSUS_HIDDEN_SUMORUN_GREEN_0 RETURN "MC_SR_GR0"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_0 RETURN "MC_OD_PU0"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_1 RETURN "MC_OD_PU1"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_2 RETURN "MC_OD_PU2"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_3 RETURN "MC_OD_PU3"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_0 RETURN "MC_OD_OR0"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_1 RETURN "MC_OD_OR1"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_2 RETURN "MC_OD_OR2"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_3 RETURN "MC_OD_OR3"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_0 RETURN "MC_OD_PI0"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_1 RETURN "MC_OD_PI1"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_2 RETURN "MC_OD_PI2"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_3 RETURN "MC_OD_PI3"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_0 RETURN "MC_OD_GR0"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_1 RETURN "MC_OD_GR1"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_2 RETURN "MC_OD_GR2"
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_3 RETURN "MC_OD_GR3"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_0 RETURN "MC_HP_H0"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_1 RETURN "MC_HP_H1"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_2 RETURN "MC_HP_H2"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_3 RETURN "MC_HP_H3"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_RUNNER_0 RETURN "MC_HP_HR"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_0 RETURN "MC_HP_R0"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_1 RETURN "MC_HP_R1"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_2 RETURN "MC_HP_R2"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_3 RETURN "MC_HP_R3"
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_RUNNER_0 RETURN "MC_HP_RR"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_0 RETURN "MC_TP_B0"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_1 RETURN "MC_TP_B1"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_2 RETURN "MC_TP_B2"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_3 RETURN "MC_TP_B3"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_4 RETURN "MC_TP_B4"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_5 RETURN "MC_TP_B5"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_6 RETURN "MC_TP_B6"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_7 RETURN "MC_TP_B7"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_0 RETURN "MC_TP_J0"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_1 RETURN "MC_TP_J1"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_2 RETURN "MC_TP_J2"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_3 RETURN "MC_TP_J3"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_4 RETURN "MC_TP_J4"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_5 RETURN "MC_TP_J5"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_6 RETURN "MC_TP_J6"
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_7 RETURN "MC_TP_J7"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_0 RETURN "MC_COTP_H0"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_1 RETURN "MC_COTP_H1"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_2 RETURN "MC_COTP_H2"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_3 RETURN "MC_COTP_H3"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_4 RETURN "MC_COTP_H4"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_5 RETURN "MC_COTP_H5"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_6 RETURN "MC_COTP_H6"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_7 RETURN "MC_COTP_H7"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_RUNNER_0 RETURN "MC_COTP_R0"
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_RUNNER_1 RETURN "MC_COTP_R2"
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_BLACK RETURN "MC_RB_BLACK"
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_WHITE RETURN "MC_RB_WHITE"
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_RED RETURN "MC_RB_RED"
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_BLUE RETURN "MC_RB_BLUE"
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREEN RETURN "MC_RB_GRN"
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOW RETURN "MC_RB_YLW"
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREENGLOW RETURN "MC_RB_GRNGLW"
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOWGLOW RETURN "MC_RB_YLWGLW"
CASE OUTFIT_VERSUS_HIDDEN_SPACELING_0 RETURN "MC_SPACELNG0"
CASE OUTFIT_VERSUS_HIDDEN_SPACELING_1 RETURN "MC_SPACELNG1"
CASE OUTFIT_VERSUS_HIDDEN_SPACELING_2 RETURN "MC_SPACELNG2"
CASE OUTFIT_VERSUS_HIDDEN_SPACELING_3 RETURN "MC_SPACELNG3"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_COP RETURN "MC_O_FIREMAN"
CASE OUTFIT_CASINO_HIGHROLLER RETURN "MC_O_HIGHROLL"
CASE OUTFIT_HIDDEN_DAWNRAID_PURPLE_0 RETURN "MC_O_NOOSE"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_0 RETURN "CHO_STBI0"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_1 RETURN "CHO_STBI1"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_2 RETURN "CHO_STBI2"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_3 RETURN "CHO_STBI3"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_4 RETURN "CHO_STBI4"
CASE OUTFIT_CASINO_HEIST_STEALTH_I_5 RETURN "CHO_STBI5"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_0 RETURN "CHO_STBII0"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_1 RETURN "CHO_STBII1"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_2 RETURN "CHO_STBII2"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_3 RETURN "CHO_STBII3"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_4 RETURN "CHO_STBII4"
CASE OUTFIT_CASINO_HEIST_STEALTH_II_5 RETURN "CHO_STBII5"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_0 RETURN "CHO_STBIII0"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_1 RETURN "CHO_STBIII1"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_2 RETURN "CHO_STBIII2"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_3 RETURN "CHO_STBIII3"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_4 RETURN "CHO_STBIII4"
CASE OUTFIT_CASINO_HEIST_STEALTH_III_5 RETURN "CHO_STBIII5"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_0 RETURN "CHO_STAI0"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_1 RETURN "CHO_STAI1"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_2 RETURN "CHO_STAI2"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_3 RETURN "CHO_STAI3"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_4 RETURN "CHO_STAI4"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_5 RETURN "CHO_STAI5"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_0 RETURN "CHO_STAII0"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_1 RETURN "CHO_STAII1"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_2 RETURN "CHO_STAII2"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_3 RETURN "CHO_STAII3"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_4 RETURN "CHO_STAII4"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_5 RETURN "CHO_STAII5"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_0 RETURN "CHO_STAIII0"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_1 RETURN "CHO_STAIII1"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_2 RETURN "CHO_STAIII2"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_3 RETURN "CHO_STAIII3"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_4 RETURN "CHO_STAIII4"
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_5 RETURN "CHO_STAIII5"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_0 RETURN "CHO_SU_B0"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_1 RETURN "CHO_SU_B1"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_2 RETURN "CHO_SU_B2"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_3 RETURN "CHO_SU_B3"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_4 RETURN "CHO_SU_B4"
CASE OUTFIT_CASINO_HEIST_BUGSTARS_5 RETURN "CHO_SU_B5"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_0 RETURN "CHO_SU_M0"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_1 RETURN "CHO_SU_M1"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_2 RETURN "CHO_SU_M2"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_3 RETURN "CHO_SU_M3"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_4 RETURN "CHO_SU_M4"
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_5 RETURN "CHO_SU_M5"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_0 RETURN "CHO_SU_G0"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_1 RETURN "CHO_SU_G1"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_2 RETURN "CHO_SU_G2"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_3 RETURN "CHO_SU_G3"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_4 RETURN "CHO_SU_G4"
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_5 RETURN "CHO_SU_G5"
CASE OUTFIT_CASINO_HEIST_CELEB_0 RETURN "CHO_SU_W0"
CASE OUTFIT_CASINO_HEIST_CELEB_1 RETURN "CHO_SU_W1"
CASE OUTFIT_CASINO_HEIST_CELEB_2 RETURN "CHO_SU_W2"
CASE OUTFIT_CASINO_HEIST_CELEB_3 RETURN "CHO_SU_W3"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_0 RETURN "CHO_DLI0"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_1 RETURN "CHO_DLI1"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_2 RETURN "CHO_DLI2"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_3 RETURN "CHO_DLI3"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_4 RETURN "CHO_DLI4"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_5 RETURN "CHO_DLI5"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_0 RETURN "CHO_DLII0"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_1 RETURN "CHO_DLII1"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_2 RETURN "CHO_DLII2"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_3 RETURN "CHO_DLII3"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_4 RETURN "CHO_DLII4"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_5 RETURN "CHO_DLII5"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_0 RETURN "CHO_DLIII0"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_1 RETURN "CHO_DLIII1"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_2 RETURN "CHO_DLIII2"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_3 RETURN "CHO_DLIII3"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_4 RETURN "CHO_DLIII4"
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_5 RETURN "CHO_DLIII5"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_0 RETURN "CHO_DHI0"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_1 RETURN "CHO_DHI1"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_2 RETURN "CHO_DHI2"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_3 RETURN "CHO_DHI3"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_4 RETURN "CHO_DHI4"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_5 RETURN "CHO_DHI5"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_0 RETURN "CHO_DHII0"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_1 RETURN "CHO_DHII1"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_2 RETURN "CHO_DHII2"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_3 RETURN "CHO_DHII3"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_4 RETURN "CHO_DHII4"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_5 RETURN "CHO_DHII5"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_0 RETURN "CHO_DHIII0"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_1 RETURN "CHO_DHIII1"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_2 RETURN "CHO_DHIII2"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_3 RETURN "CHO_DHIII3"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_4 RETURN "CHO_DHIII4"
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_5 RETURN "CHO_DHIII5"
ENDSWITCH
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_0 RETURN "IHO_SM_0"
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_1 RETURN "IHO_SM_1"
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_2 RETURN "IHO_SM_2"
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_3 RETURN "IHO_SM_3"
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_0 RETURN "IHO_H1_0"
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_1 RETURN "IHO_H1_1"
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_2 RETURN "IHO_H1_2"
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_3 RETURN "IHO_H1_3"
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_0 RETURN "IHO_H2_0"
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_1 RETURN "IHO_H2_1"
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_2 RETURN "IHO_H2_2"
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_3 RETURN "IHO_H2_3"
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_0 RETURN "IHO_L1_0"
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_1 RETURN "IHO_L1_1"
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_2 RETURN "IHO_L1_2"
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_3 RETURN "IHO_L1_3"
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_0 RETURN "IHO_L2_0"
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_1 RETURN "IHO_L2_1"
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_2 RETURN "IHO_L2_2"
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_3 RETURN "IHO_L2_3"
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_0 RETURN "IHO_S1_0"
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_1 RETURN "IHO_S1_1"
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_2 RETURN "IHO_S1_2"
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_3 RETURN "IHO_S1_3"
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_0 RETURN "IHO_S2_0"
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_1 RETURN "IHO_S2_1"
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_2 RETURN "IHO_S2_2"
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_3 RETURN "IHO_S2_3"
CASE OUTFIT_FIXER_PARTY_PROMOTER_0 RETURN "FIXO_PP_0"
CASE OUTFIT_FIXER_PARTY_PROMOTER_1 RETURN "FIXO_PP_1"
CASE OUTFIT_FIXER_PARTY_PROMOTER_2 RETURN "FIXO_PP_2"
CASE OUTFIT_FIXER_PARTY_PROMOTER_3 RETURN "FIXO_PP_3"
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_0 RETURN "FIXO_BG_0"
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_1 RETURN "FIXO_BG_1"
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_2 RETURN "FIXO_BG_2"
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_3 RETURN "FIXO_BG_3"
CASE OUTFIT_FIXER_GOLF_0 RETURN "FIXO_GF_0"
CASE OUTFIT_FIXER_GOLF_1 RETURN "FIXO_GF_1"
CASE OUTFIT_FIXER_GOLF_2 RETURN "FIXO_GF_2"
CASE OUTFIT_FIXER_GOLF_3 RETURN "FIXO_GF_3"
CASE OUTFIT_FIXER_GOLF_4 RETURN "FIXO_GF_4"
CASE OUTFIT_FIXER_GOLF_5 RETURN "FIXO_GF_5"
CASE OUTFIT_FIXER_GOLF_6 RETURN "FIXO_GF_6"
CASE OUTFIT_FIXER_GOLF_7 RETURN "FIXO_GF_7"
CASE OUTFIT_SUM22_IAA_AGENT_0 RETURN "SUM22O_IA_0"
CASE OUTFIT_SUM22_IAA_AGENT_1 RETURN "SUM22O_IA_1"
CASE OUTFIT_SUM22_IAA_AGENT_2 RETURN "SUM22O_IA_2"
CASE OUTFIT_SUM22_IAA_AGENT_3 RETURN "SUM22O_IA_3"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_0 RETURN "SUM22O_HW_R0"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_1 RETURN "SUM22O_HW_R1"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_2 RETURN "SUM22O_HW_R2"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_3 RETURN "SUM22O_HW_R3"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_4 RETURN "SUM22O_HW_R4"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_5 RETURN "SUM22O_HW_R5"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_6 RETURN "SUM22O_HW_R6"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_7 RETURN "SUM22O_HW_R7"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_0 RETURN "SUM22O_HW_H0"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_1 RETURN "SUM22O_HW_H1"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_2 RETURN "SUM22O_HW_H2"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_3 RETURN "SUM22O_HW_H3"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_4 RETURN "SUM22O_HW_H4"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_5 RETURN "SUM22O_HW_H5"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_6 RETURN "SUM22O_HW_H6"
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_7 RETURN "SUM22O_HW_H7"
ENDSWITCH
PRINTLN("GET_MP_OUTFIT_NAME - Enum missing tell Tom F. - ", eOutfit)
//SCRIPT_ASSERT("GET_MP_OUTFIT_NAME - Enum missing tell Tom F.")
RETURN "NOT NAMED"
ENDFUNC
FUNC STRING GET_MP_OUTFIT_MASK_NAME( MP_OUTFIT_MASK_ENUM eMask)
SWITCH eMask
CASE OUTFIT_MASK_NONE RETURN "HO_NONE" BREAK // None
CASE OUTFIT_MASK_FREEMODE RETURN "HO_NONE" BREAK // None
CASE OUTFIT_MASK_AMATEUR_0 RETURN "HM_AMATUR_0" BREAK
CASE OUTFIT_MASK_AMATEUR_1 RETURN "HM_AMATUR_1" BREAK
CASE OUTFIT_MASK_AMATEUR_2 RETURN "HM_AMATUR_2" BREAK
CASE OUTFIT_MASK_AMATEUR_3 RETURN "HM_AMATUR_3" BREAK
CASE OUTFIT_MASK_ANIMALS_0 RETURN "HM_ANIMAL_0" BREAK
CASE OUTFIT_MASK_ANIMALS_1 RETURN "HM_ANIMAL_1" BREAK
CASE OUTFIT_MASK_ANIMALS_2 RETURN "HM_ANIMAL_2" BREAK
CASE OUTFIT_MASK_ANIMALS_3 RETURN "HM_ANIMAL_3" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_0 RETURN "HM_PAP_BAG_0" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_1 RETURN "HM_PAP_BAG_1" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_2 RETURN "HM_PAP_BAG_2" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_3 RETURN "HM_PAP_BAG_3" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_4 RETURN "HM_PAP_BAG_4" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_5 RETURN "HM_PAP_BAG_5" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_6 RETURN "HM_PAP_BAG_6" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_7 RETURN "HM_PAP_BAG_7" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_8 RETURN "HM_PAP_BAG_8" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_9 RETURN "HM_PAP_BAG_9" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_10 RETURN "HM_PAP_BAG_10" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_11 RETURN "HM_PAP_BAG_11" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_12 RETURN "HM_PAP_BAG_12" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_13 RETURN "HM_PAP_BAG_13" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_14 RETURN "HM_PAP_BAG_14" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_15 RETURN "HM_PAP_BAG_15" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_16 RETURN "HM_PAP_BAG_16" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_17 RETURN "HM_PAP_BAG_17" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_18 RETURN "HM_PAP_BAG_18" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_19 RETURN "HM_PAP_BAG_19" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_20 RETURN "HM_PAP_BAG_20" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_21 RETURN "HM_PAP_BAG_21" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_22 RETURN "HM_PAP_BAG_22" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_23 RETURN "HM_PAP_BAG_23" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_24 RETURN "HM_PAP_BAG_24" BREAK
CASE OUTFIT_MASK_PAPER_BAGS_25 RETURN "HM_PAP_BAG_25" BREAK
CASE OUTFIT_MASK_BEASTS_0 RETURN "HM_BEAST_0" BREAK
CASE OUTFIT_MASK_BEASTS_1 RETURN "HM_BEAST_1" BREAK
CASE OUTFIT_MASK_BEASTS_2 RETURN "HM_BEAST_2" BREAK
CASE OUTFIT_MASK_BEASTS_3 RETURN "HM_BEAST_3" BREAK
CASE OUTFIT_MASK_CHARACTERS_0 RETURN "HM_CHARS_0" BREAK
CASE OUTFIT_MASK_CHARACTERS_1 RETURN "HM_CHARS_1" BREAK
CASE OUTFIT_MASK_CHARACTERS_2 RETURN "HM_CHARS_2" BREAK
CASE OUTFIT_MASK_CHARACTERS_3 RETURN "HM_CHARS_3" BREAK
CASE OUTFIT_MASK_CLASSIC_MONSTERS_0 RETURN "HM_CLS_MON_0" BREAK
CASE OUTFIT_MASK_CLASSIC_MONSTERS_1 RETURN "HM_CLS_MON_2" BREAK //the variations have been swapped around here
CASE OUTFIT_MASK_CLASSIC_MONSTERS_2 RETURN "HM_CLS_MON_1" BREAK // 1= brown mummy 2=white vampire
CASE OUTFIT_MASK_CLASSIC_MONSTERS_3 RETURN "HM_CLS_MON_3" BREAK
CASE OUTFIT_MASK_CARNIVAL_0 RETURN "HM_CARNIE_0" BREAK
CASE OUTFIT_MASK_CARNIVAL_1 RETURN "HM_CARNIE_1" BREAK
CASE OUTFIT_MASK_CARNIVAL_2 RETURN "HM_CARNIE_2" BREAK
CASE OUTFIT_MASK_CARNIVAL_3 RETURN "HM_CARNIE_3" BREAK
CASE OUTFIT_MASK_GAS_MASKS_0 RETURN "HM_GAS_MSK_0" BREAK
CASE OUTFIT_MASK_GAS_MASKS_1 RETURN "HM_GAS_MSK_1" BREAK
CASE OUTFIT_MASK_HELMETS_0 RETURN "HM_HELM_0" BREAK
CASE OUTFIT_MASK_HELMETS_1 RETURN "HM_HELM_1" BREAK
CASE OUTFIT_MASK_HELMETS_2 RETURN "HM_HELM_2" BREAK
CASE OUTFIT_MASK_HELMETS_3 RETURN "HM_HELM_3" BREAK
CASE OUTFIT_MASK_HELMETS_4 RETURN "HM_HELM_4" BREAK
CASE OUTFIT_MASK_HELMETS_5 RETURN "HM_HELM_5" BREAK
CASE OUTFIT_MASK_HELMETS_6 RETURN "HM_HELM_6" BREAK
CASE OUTFIT_MASK_HELMETS_7 RETURN "HM_HELM_7" BREAK
CASE OUTFIT_MASK_HORROR_HOCKEY_0 RETURN "HM_HOR_HOC_0" BREAK
CASE OUTFIT_MASK_HORROR_HOCKEY_1 RETURN "HM_HOR_HOC_1" BREAK
CASE OUTFIT_MASK_HORROR_HOCKEY_2 RETURN "HM_HOR_HOC_2" BREAK
CASE OUTFIT_MASK_HORROR_HOCKEY_3 RETURN "HM_HOR_HOC_3" BREAK
CASE OUTFIT_MASK_PUPPETS_0 RETURN "HM_PUPPET_0" BREAK
CASE OUTFIT_MASK_PUPPETS_1 RETURN "HM_PUPPET_1" BREAK
CASE OUTFIT_MASK_PUPPETS_2 RETURN "HM_PUPPET_2" BREAK
CASE OUTFIT_MASK_PUPPETS_3 RETURN "HM_PUPPET_3" BREAK
CASE OUTFIT_MASK_SKULLS_0 RETURN "HM_SKULL_0" BREAK
CASE OUTFIT_MASK_SKULLS_1 RETURN "HM_SKULL_1" BREAK
CASE OUTFIT_MASK_SKULLS_2 RETURN "HM_SKULL_2" BREAK
CASE OUTFIT_MASK_SKULLS_3 RETURN "HM_SKULL_3" BREAK
CASE OUTFIT_MASK_TACTICAL_0 RETURN "HM_TACT_0" BREAK
CASE OUTFIT_MASK_TACTICAL_1 RETURN "HM_TACT_1" BREAK
CASE OUTFIT_MASK_TACTICAL_2 RETURN "HM_TACT_2" BREAK
CASE OUTFIT_MASK_TACTICAL_3 RETURN "HM_TACT_3" BREAK
CASE OUTFIT_MASK_TAPE_0 RETURN "HM_TAPE_0" BREAK
CASE OUTFIT_MASK_TAPE_1 RETURN "HM_TAPE_1" BREAK
CASE OUTFIT_MASK_TAPE_2 RETURN "HM_TAPE_2" BREAK
CASE OUTFIT_MASK_TAPE_3 RETURN "HM_TAPE_3" BREAK
CASE OUTFIT_MASK_THEATRICAL_0 RETURN "HM_THEAT_1" BREAK//Black & Gold Masquerade
CASE OUTFIT_MASK_THEATRICAL_1 RETURN "HM_THEAT_0" BREAK//The Don Plastic Face
CASE OUTFIT_MASK_THEATRICAL_2 RETURN "HM_THEAT_2" BREAK//Mime Plastic Face
CASE OUTFIT_MASK_THEATRICAL_3 RETURN "HM_THEAT_3" BREAK//Black Mysterious
CASE OUTFIT_MASK_PIGS_0 RETURN "HM_PIGS_0" BREAK
CASE OUTFIT_MASK_PIGS_1 RETURN "HM_PIGS_1" BREAK
CASE OUTFIT_MASK_PIGS_2 RETURN "HM_PIGS_2" BREAK
CASE OUTFIT_MASK_PIGS_3 RETURN "HM_PIGS_3" BREAK
CASE OUTFIT_MASK_DUCT_TAPE_0 RETURN "HM_DTAPE_0" BREAK
CASE OUTFIT_MASK_DUCT_TAPE_1 RETURN "HM_DTAPE_1" BREAK
CASE OUTFIT_MASK_DUCT_TAPE_2 RETURN "HM_DTAPE_2" BREAK
CASE OUTFIT_MASK_DUCT_TAPE_3 RETURN "HM_DTAPE_3" BREAK
CASE OUTFIT_MASK_INCOGNITO_0 RETURN "HM_INCOG_0" BREAK
CASE OUTFIT_MASK_INCOGNITO_1 RETURN "HM_INCOG_1" BREAK
CASE OUTFIT_MASK_INCOGNITO_2 RETURN "HM_INCOG_2" BREAK
CASE OUTFIT_MASK_INCOGNITO_3 RETURN "HM_INCOG_3" BREAK
CASE OUTFIT_MASK_BALACLAVAS_0 RETURN "HM_BALA_0" BREAK
CASE OUTFIT_MASK_BALACLAVAS_1 RETURN "HM_BALA_1" BREAK
CASE OUTFIT_MASK_BALACLAVAS_2 RETURN "HM_BALA_2" BREAK
CASE OUTFIT_MASK_BALACLAVAS_3 RETURN "HM_BALA_3" BREAK
CASE OUTFIT_MASK_BALACLAVAS_4 RETURN "HM_BALA_4" BREAK
CASE OUTFIT_MASK_BALACLAVAS_5 RETURN "HM_BALA_5" BREAK
CASE OUTFIT_MASK_BALACLAVAS_6 RETURN "HM_BALA_6" BREAK
CASE OUTFIT_MASK_BALACLAVAS_7 RETURN "HM_BALA_7" BREAK
CASE OUTFIT_MASK_BALACLAVAS_8 RETURN "HM_BALA_8" BREAK
CASE OUTFIT_MASK_BALACLAVAS_9 RETURN "HM_BALA_9" BREAK
CASE OUTFIT_MASK_BALACLAVAS_10 RETURN "HM_BALA_10" BREAK
CASE OUTFIT_MASK_BALACLAVAS_11 RETURN "HM_BALA_11" BREAK
CASE OUTFIT_MASK_CAMO_0 RETURN "HM_CAMO_0" BREAK
CASE OUTFIT_MASK_CAMO_1 RETURN "HM_CAMO_1" BREAK
CASE OUTFIT_MASK_CAMO_2 RETURN "HM_CAMO_2" BREAK
CASE OUTFIT_MASK_CAMO_3 RETURN "HM_CAMO_3" BREAK
CASE OUTFIT_MASK_CAMO_4 RETURN "HM_CAMO_4" BREAK
CASE OUTFIT_MASK_CAMO_5 RETURN "HM_CAMO_5" BREAK
CASE OUTFIT_MASK_PSYCHOTIC_0 RETURN "HM_PSYC_0" BREAK
CASE OUTFIT_MASK_PSYCHOTIC_1 RETURN "HM_PSYC_1" BREAK
CASE OUTFIT_MASK_PSYCHOTIC_2 RETURN "HM_PSYC_2" BREAK
CASE OUTFIT_MASK_PSYCHOTIC_3 RETURN "HM_PSYC_3" BREAK
CASE OUTFIT_MASK_STREET_0 RETURN "HM_STREET_0" BREAK
CASE OUTFIT_MASK_STREET_1 RETURN "HM_STREET_1" BREAK
CASE OUTFIT_MASK_STREET_2 RETURN "HM_STREET_2" BREAK
CASE OUTFIT_MASK_STREET_3 RETURN "HM_STREET_3" BREAK
CASE OUTFIT_MASK_STREET_4 RETURN "HM_STREET_4" BREAK
CASE OUTFIT_MASK_STREET_5 RETURN "HM_STREET_5" BREAK
CASE OUTFIT_MASK_BANDANAS_0 RETURN "HM_BANDA_0" BREAK
CASE OUTFIT_MASK_BANDANAS_1 RETURN "HM_BANDA_1" BREAK
CASE OUTFIT_MASK_BANDANAS_2 RETURN "HM_BANDA_2" BREAK
CASE OUTFIT_MASK_BANDANAS_3 RETURN "HM_BANDA_3" BREAK
CASE OUTFIT_MASK_HOODS_0 RETURN "HM_HOODS_0" BREAK
CASE OUTFIT_MASK_HOODS_1 RETURN "HM_HOODS_1" BREAK
CASE OUTFIT_MASK_HOODS_2 RETURN "HM_HOODS_2" BREAK
CASE OUTFIT_MASK_HOODS_3 RETURN "HM_HOODS_3" BREAK
CASE OUTFIT_MASK_DESIGNER_0 RETURN "HM_DESIGNER_0" BREAK
CASE OUTFIT_MASK_DESIGNER_1 RETURN "HM_DESIGNER_1" BREAK
CASE OUTFIT_MASK_DESIGNER_2 RETURN "HM_DESIGNER_2" BREAK
CASE OUTFIT_MASK_DESIGNER_3 RETURN "HM_DESIGNER_3" BREAK
CASE OUTFIT_MASK_DESIGNER_4 RETURN "HM_DESIGNER_4" BREAK
CASE OUTFIT_MASK_DESIGNER_5 RETURN "HM_DESIGNER_5" BREAK
CASE MASK_HEIST_HALLOWEEN_DEVILISH_0 RETURN "HM_DEVIL_0" BREAK
CASE MASK_HEIST_HALLOWEEN_DEVILISH_1 RETURN "HM_DEVIL_4" BREAK
CASE MASK_HEIST_HALLOWEEN_DEVILISH_2 RETURN "HM_DEVIL_2" BREAK
CASE MASK_HEIST_HALLOWEEN_DEVILISH_3 RETURN "HM_DEVIL_3" BREAK
CASE MASK_HEIST_HALLOWEEN_DEVILISH_4 RETURN "HM_DEVIL_1" BREAK
CASE MASK_HEIST_HALLOWEEN_DEVILISH_5 RETURN "HM_DEVIL_5" BREAK
CASE MASK_HEIST_HALLOWEEN_SADISTIC_0 RETURN "HM_SAD_0" BREAK
CASE MASK_HEIST_HALLOWEEN_SADISTIC_1 RETURN "HM_SAD_1" BREAK
CASE MASK_HEIST_HALLOWEEN_SADISTIC_2 RETURN "HM_SAD_2" BREAK
CASE MASK_HEIST_HALLOWEEN_SADISTIC_3 RETURN "HM_SAD_3" BREAK
CASE MASK_HEIST_HALLOWEEN_POSSESSED_0 RETURN "HM_POSS_0" BREAK
CASE MASK_HEIST_HALLOWEEN_POSSESSED_1 RETURN "HM_POSS_1" BREAK
CASE MASK_HEIST_HALLOWEEN_POSSESSED_2 RETURN "HM_POSS_2" BREAK
CASE MASK_HEIST_HALLOWEEN_POSSESSED_3 RETURN "HM_POSS_3" BREAK
CASE MASK_HEIST_HALLOWEEN_FIENDS_0 RETURN "HM_FIENDS_0" BREAK
CASE MASK_HEIST_HALLOWEEN_FIENDS_1 RETURN "HM_FIENDS_1" BREAK
CASE MASK_HEIST_HALLOWEEN_FIENDS_2 RETURN "HM_FIENDS_2" BREAK
CASE MASK_HEIST_HALLOWEEN_FIENDS_3 RETURN "HM_FIENDS_3" BREAK
CASE MASK_HEIST_HALLOWEEN_CREATURES_0 RETURN "HM_CREAT_0" BREAK
CASE MASK_HEIST_HALLOWEEN_CREATURES_1 RETURN "HM_CREAT_1" BREAK
CASE MASK_HEIST_HALLOWEEN_CREATURES_2 RETURN "HM_CREAT_2" BREAK
CASE MASK_HEIST_HALLOWEEN_CREATURES_3 RETURN "HM_CREAT_3" BREAK
CASE MASK_HEIST_HALLOWEEN_WICKED_0 RETURN "HM_WICKED_0" BREAK
CASE MASK_HEIST_HALLOWEEN_WICKED_1 RETURN "HM_WICKED_1" BREAK
CASE MASK_HEIST_HALLOWEEN_WICKED_2 RETURN "HM_WICKED_2" BREAK
CASE MASK_HEIST_HALLOWEEN_WICKED_3 RETURN "HM_WICKED_3" BREAK
// TOO MANY CASE STATEMENTS IN SWITCH, ADD BELOW
ENDSWITCH
SWITCH eMask
CASE MASK_CASINO_HEIST_DEFAULT_0 RETURN "CH_MSK_DFLT_0" BREAK
CASE MASK_CASINO_HEIST_DEFAULT_1 RETURN "CH_MSK_DFLT_1" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_0 RETURN "CH_MSK_GEOM_0" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_1 RETURN "CH_MSK_GEOM_1" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_2 RETURN "CH_MSK_GEOM_2" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_3 RETURN "CH_MSK_GEOM_3" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_4 RETURN "CH_MSK_GEOM_4" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_5 RETURN "CH_MSK_GEOM_5" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_6 RETURN "CH_MSK_GEOM_6" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_7 RETURN "CH_MSK_GEOM_7" BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_8 RETURN "CH_MSK_GEOM_8" BREAK
CASE MASK_CASINO_HEIST_HUNTER_0 RETURN "CH_MSK_HUNT_0" BREAK
CASE MASK_CASINO_HEIST_HUNTER_1 RETURN "CH_MSK_HUNT_1" BREAK
CASE MASK_CASINO_HEIST_HUNTER_2 RETURN "CH_MSK_HUNT_2" BREAK
CASE MASK_CASINO_HEIST_HUNTER_3 RETURN "CH_MSK_HUNT_3" BREAK
CASE MASK_CASINO_HEIST_HUNTER_4 RETURN "CH_MSK_HUNT_4" BREAK
CASE MASK_CASINO_HEIST_HUNTER_5 RETURN "CH_MSK_HUNT_5" BREAK
CASE MASK_CASINO_HEIST_HUNTER_6 RETURN "CH_MSK_HUNT_6" BREAK
CASE MASK_CASINO_HEIST_HUNTER_7 RETURN "CH_MSK_HUNT_7" BREAK
CASE MASK_CASINO_HEIST_HUNTER_8 RETURN "CH_MSK_HUNT_8" BREAK
CASE MASK_CASINO_HEIST_HUNTER_9 RETURN "CH_MSK_HUNT_9" BREAK
CASE MASK_CASINO_HEIST_ONIHALF_0 RETURN "CH_MSK_ONIH_0" BREAK
CASE MASK_CASINO_HEIST_ONIHALF_1 RETURN "CH_MSK_ONIH_1" BREAK
CASE MASK_CASINO_HEIST_ONIHALF_2 RETURN "CH_MSK_ONIH_2" BREAK
CASE MASK_CASINO_HEIST_ONIHALF_3 RETURN "CH_MSK_ONIH_3" BREAK
CASE MASK_CASINO_HEIST_ONIHALF_4 RETURN "CH_MSK_ONIH_4" BREAK
CASE MASK_CASINO_HEIST_ONIHALF_5 RETURN "CH_MSK_ONIH_5" BREAK
CASE MASK_CASINO_HEIST_EMOJI_0 RETURN "CH_MSK_EMOJ_0" BREAK
CASE MASK_CASINO_HEIST_EMOJI_1 RETURN "CH_MSK_EMOJ_1" BREAK
CASE MASK_CASINO_HEIST_EMOJI_2 RETURN "CH_MSK_EMOJ_2" BREAK
CASE MASK_CASINO_HEIST_EMOJI_3 RETURN "CH_MSK_EMOJ_3" BREAK
CASE MASK_CASINO_HEIST_EMOJI_4 RETURN "CH_MSK_EMOJ_4" BREAK
CASE MASK_CASINO_HEIST_EMOJI_5 RETURN "CH_MSK_EMOJ_5" BREAK
CASE MASK_CASINO_HEIST_EMOJI_6 RETURN "CH_MSK_EMOJ_6" BREAK
CASE MASK_CASINO_HEIST_EMOJI_7 RETURN "CH_MSK_EMOJ_7" BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_0 RETURN "CH_MSK_SKUL_0" BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_1 RETURN "CH_MSK_SKUL_1" BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_2 RETURN "CH_MSK_SKUL_2" BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_3 RETURN "CH_MSK_SKUL_3" BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_4 RETURN "CH_MSK_SKUL_4" BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_5 RETURN "CH_MSK_SKUL_5" BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_0 RETURN "CH_MSK_LFRU_0" BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_1 RETURN "CH_MSK_LFRU_1" BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_2 RETURN "CH_MSK_LFRU_2" BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_3 RETURN "CH_MSK_LFRU_3" BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_4 RETURN "CH_MSK_LFRU_4" BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_5 RETURN "CH_MSK_LFRU_5" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_0 RETURN "CH_MSK_GUER_0" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_1 RETURN "CH_MSK_GUER_1" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_2 RETURN "CH_MSK_GUER_2" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_3 RETURN "CH_MSK_GUER_3" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_4 RETURN "CH_MSK_GUER_4" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_5 RETURN "CH_MSK_GUER_5" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_6 RETURN "CH_MSK_GUER_6" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_7 RETURN "CH_MSK_GUER_7" BREAK
CASE MASK_CASINO_HEIST_GUERILLA_8 RETURN "CH_MSK_GUER_8" BREAK
CASE MASK_CASINO_HEIST_CLOWNS_0 RETURN "CH_MSK_CLWN_0" BREAK
CASE MASK_CASINO_HEIST_CLOWNS_1 RETURN "CH_MSK_CLWN_1" BREAK
CASE MASK_CASINO_HEIST_CLOWNS_2 RETURN "CH_MSK_CLWN_2" BREAK
CASE MASK_CASINO_HEIST_CLOWNS_3 RETURN "CH_MSK_CLWN_3" BREAK
CASE MASK_CASINO_HEIST_CLOWNS_4 RETURN "CH_MSK_CLWN_4" BREAK
CASE MASK_CASINO_HEIST_CLOWNS_5 RETURN "CH_MSK_CLWN_5" BREAK
CASE MASK_CASINO_HEIST_CLOWNS_6 RETURN "CH_MSK_CLWN_6" BREAK
CASE MASK_CASINO_HEIST_CLOWNS_7 RETURN "CH_MSK_CLWN_7" BREAK
CASE MASK_CASINO_HEIST_ANIMALS_0 RETURN "CH_MSK_ANIM_0" BREAK
CASE MASK_CASINO_HEIST_ANIMALS_1 RETURN "CH_MSK_ANIM_1" BREAK
CASE MASK_CASINO_HEIST_ANIMALS_2 RETURN "CH_MSK_ANIM_2" BREAK
CASE MASK_CASINO_HEIST_ANIMALS_3 RETURN "CH_MSK_ANIM_3" BREAK
CASE MASK_CASINO_HEIST_ANIMALS_4 RETURN "CH_MSK_ANIM_4" BREAK
CASE MASK_CASINO_HEIST_ANIMALS_5 RETURN "CH_MSK_ANIM_5" BREAK
CASE MASK_CASINO_HEIST_ANIMALS_6 RETURN "CH_MSK_ANIM_6" BREAK
CASE MASK_CASINO_HEIST_ANIMALS_7 RETURN "CH_MSK_ANIM_7" BREAK
CASE MASK_CASINO_HEIST_RIOT_0 RETURN "CH_MSK_RIOT_0" BREAK
CASE MASK_CASINO_HEIST_RIOT_1 RETURN "CH_MSK_RIOT_1" BREAK
CASE MASK_CASINO_HEIST_RIOT_2 RETURN "CH_MSK_RIOT_2" BREAK
CASE MASK_CASINO_HEIST_RIOT_3 RETURN "CH_MSK_RIOT_3" BREAK
CASE MASK_CASINO_HEIST_RIOT_4 RETURN "CH_MSK_RIOT_4" BREAK
CASE MASK_CASINO_HEIST_RIOT_5 RETURN "CH_MSK_RIOT_5" BREAK
CASE MASK_CASINO_HEIST_RIOT_6 RETURN "CH_MSK_RIOT_6" BREAK
CASE MASK_CASINO_HEIST_RIOT_7 RETURN "CH_MSK_RIOT_7" BREAK
CASE MASK_CASINO_HEIST_ONIFULL_0 RETURN "CH_MSK_ONIF_0" BREAK
CASE MASK_CASINO_HEIST_ONIFULL_1 RETURN "CH_MSK_ONIF_1" BREAK
CASE MASK_CASINO_HEIST_ONIFULL_2 RETURN "CH_MSK_ONIF_2" BREAK
CASE MASK_CASINO_HEIST_ONIFULL_3 RETURN "CH_MSK_ONIF_3" BREAK
CASE MASK_CASINO_HEIST_ONIFULL_4 RETURN "CH_MSK_ONIF_4" BREAK
CASE MASK_CASINO_HEIST_ONIFULL_5 RETURN "CH_MSK_ONIF_5" BREAK
CASE MASK_CASINO_HEIST_HOCKEY_0 RETURN "CH_MSK_HOCK_0" BREAK
CASE MASK_CASINO_HEIST_HOCKEY_1 RETURN "CH_MSK_HOCK_1" BREAK
CASE MASK_CASINO_HEIST_HOCKEY_2 RETURN "CH_MSK_HOCK_2" BREAK
CASE MASK_CASINO_HEIST_HOCKEY_3 RETURN "CH_MSK_HOCK_3" BREAK
CASE MASK_CASINO_HEIST_HOCKEY_4 RETURN "CH_MSK_HOCK_4" BREAK
CASE MASK_CASINO_HEIST_HOCKEY_5 RETURN "CH_MSK_HOCK_5" BREAK
CASE MASK_CASINO_HEIST_HOCKEY_6 RETURN "CH_MSK_HOCK_6" BREAK
CASE MASK_CASINO_HEIST_HOCKEY_7 RETURN "CH_MSK_HOCK_7" BREAK
ENDSWITCH
SWITCH eMask
CASE MASK_ISLAND_HEIST_BRANDED_HALF_0 RETURN "MASK_IH_BHALF_0"
CASE MASK_ISLAND_HEIST_BRANDED_HALF_1 RETURN "MASK_IH_BHALF_1"
CASE MASK_ISLAND_HEIST_BRANDED_HALF_2 RETURN "MASK_IH_BHALF_2"
CASE MASK_ISLAND_HEIST_BRANDED_HALF_3 RETURN "MASK_IH_BHALF_3"
CASE MASK_ISLAND_HEIST_BRANDED_HALF_4 RETURN "MASK_IH_BHALF_4"
CASE MASK_ISLAND_HEIST_BRANDED_HALF_5 RETURN "MASK_IH_BHALF_5"
CASE MASK_ISLAND_HEIST_BRANDED_HALF_6 RETURN "MASK_IH_BHALF_6"
CASE MASK_ISLAND_HEIST_BRANDED_HALF_7 RETURN "MASK_IH_BHALF_7"
CASE MASK_ISLAND_HEIST_PAINTED_FULL_0 RETURN "MASK_IH_PFULL_0"
CASE MASK_ISLAND_HEIST_PAINTED_FULL_1 RETURN "MASK_IH_PFULL_1"
CASE MASK_ISLAND_HEIST_PAINTED_FULL_2 RETURN "MASK_IH_PFULL_2"
CASE MASK_ISLAND_HEIST_PAINTED_FULL_3 RETURN "MASK_IH_PFULL_3"
CASE MASK_ISLAND_HEIST_PAINTED_FULL_4 RETURN "MASK_IH_PFULL_4"
CASE MASK_ISLAND_HEIST_PAINTED_FULL_5 RETURN "MASK_IH_PFULL_5"
CASE MASK_ISLAND_HEIST_CAMO_SPEC_0 RETURN "MASK_IH_CSPEC_0"
CASE MASK_ISLAND_HEIST_CAMO_SPEC_1 RETURN "MASK_IH_CSPEC_1"
CASE MASK_ISLAND_HEIST_CAMO_SPEC_2 RETURN "MASK_IH_CSPEC_2"
CASE MASK_ISLAND_HEIST_CAMO_SPEC_3 RETURN "MASK_IH_CSPEC_3"
CASE MASK_ISLAND_HEIST_CAMO_SPEC_4 RETURN "MASK_IH_CSPEC_4"
CASE MASK_ISLAND_HEIST_CAMO_SPEC_5 RETURN "MASK_IH_CSPEC_5"
CASE MASK_ISLAND_HEIST_NECK_GAITERS_0 RETURN "MASK_IH_NGAIT_0"
CASE MASK_ISLAND_HEIST_NECK_GAITERS_1 RETURN "MASK_IH_NGAIT_1"
CASE MASK_ISLAND_HEIST_NECK_GAITERS_2 RETURN "MASK_IH_NGAIT_2"
CASE MASK_ISLAND_HEIST_NECK_GAITERS_3 RETURN "MASK_IH_NGAIT_3"
CASE MASK_ISLAND_HEIST_NECK_GAITERS_4 RETURN "MASK_IH_NGAIT_4"
CASE MASK_ISLAND_HEIST_NECK_GAITERS_5 RETURN "MASK_IH_NGAIT_5"
CASE MASK_ISLAND_HEIST_NECK_GAITERS_6 RETURN "MASK_IH_NGAIT_6"
CASE MASK_ISLAND_HEIST_NECK_GAITERS_7 RETURN "MASK_IH_NGAIT_7"
CASE MASK_ISLAND_HEIST_FACE_WRAPS_0 RETURN "MASK_IH_FWRAP_0"
CASE MASK_ISLAND_HEIST_FACE_WRAPS_1 RETURN "MASK_IH_FWRAP_1"
CASE MASK_ISLAND_HEIST_FACE_WRAPS_2 RETURN "MASK_IH_FWRAP_2"
CASE MASK_ISLAND_HEIST_FACE_WRAPS_3 RETURN "MASK_IH_FWRAP_3"
CASE MASK_ISLAND_HEIST_FACE_WRAPS_4 RETURN "MASK_IH_FWRAP_4"
CASE MASK_ISLAND_HEIST_FACE_WRAPS_5 RETURN "MASK_IH_FWRAP_5"
CASE MASK_ISLAND_HEIST_NIGHT_OPS_0 RETURN "MASK_IH_NOPS_0"
CASE MASK_ISLAND_HEIST_NIGHT_OPS_1 RETURN "MASK_IH_NOPS_1"
CASE MASK_ISLAND_HEIST_NIGHT_OPS_2 RETURN "MASK_IH_NOPS_2"
CASE MASK_ISLAND_HEIST_NIGHT_OPS_3 RETURN "MASK_IH_NOPS_3"
CASE MASK_ISLAND_HEIST_NIGHT_VISION_0 RETURN "MASK_IH_NVISI_0"
CASE MASK_ISLAND_HEIST_NIGHT_VISION_1 RETURN "MASK_IH_NVISI_1"
CASE MASK_ISLAND_HEIST_NIGHT_VISION_2 RETURN "MASK_IH_NVISI_2"
CASE MASK_ISLAND_HEIST_NIGHT_VISION_3 RETURN "MASK_IH_NVISI_3"
CASE MASK_ISLAND_HEIST_CAMO_HALF_0 RETURN "MASK_IH_CHALF_0"
CASE MASK_ISLAND_HEIST_CAMO_HALF_1 RETURN "MASK_IH_CHALF_1"
CASE MASK_ISLAND_HEIST_CAMO_HALF_2 RETURN "MASK_IH_CHALF_2"
CASE MASK_ISLAND_HEIST_CAMO_HALF_3 RETURN "MASK_IH_CHALF_3"
CASE MASK_ISLAND_HEIST_CAMO_HALF_4 RETURN "MASK_IH_CHALF_4"
CASE MASK_ISLAND_HEIST_CAMO_HALF_5 RETURN "MASK_IH_CHALF_5"
CASE MASK_ISLAND_HEIST_CAMO_HALF_6 RETURN "MASK_IH_CHALF_6"
CASE MASK_ISLAND_HEIST_CAMO_HALF_7 RETURN "MASK_IH_CHALF_7"
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_0 RETURN "MASK_IH_MNIGH_0"
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_1 RETURN "MASK_IH_MNIGH_1"
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_2 RETURN "MASK_IH_MNIGH_2"
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_3 RETURN "MASK_IH_MNIGH_3"
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_4 RETURN "MASK_IH_MNIGH_4"
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_5 RETURN "MASK_IH_MNIGH_5"
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_6 RETURN "MASK_IH_MNIGH_6"
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_7 RETURN "MASK_IH_MNIGH_7"
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_0 RETURN "MASK_IH_IGUER_0"
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_1 RETURN "MASK_IH_IGUER_1"
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_2 RETURN "MASK_IH_IGUER_2"
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_3 RETURN "MASK_IH_IGUER_3"
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_4 RETURN "MASK_IH_IGUER_4"
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_5 RETURN "MASK_IH_IGUER_5"
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_6 RETURN "MASK_IH_IGUER_6"
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_7 RETURN "MASK_IH_IGUER_7"
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_0 RETURN "MASK_IH_PHOCK_0"
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_1 RETURN "MASK_IH_PHOCK_1"
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_2 RETURN "MASK_IH_PHOCK_2"
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_3 RETURN "MASK_IH_PHOCK_3"
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_4 RETURN "MASK_IH_PHOCK_4"
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_5 RETURN "MASK_IH_PHOCK_5"
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_6 RETURN "MASK_IH_PHOCK_6"
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_7 RETURN "MASK_IH_PHOCK_7"
CASE MASK_TUNER_STARS_AND_STRIPES_FALSE_FACE RETURN "MASK_TN_FFACE_0"
CASE MASK_TUNER_GREEN_PATTERN_FALSE_FACE RETURN "MASK_TN_FFACE_1"
ENDSWITCH
PRINTLN("GET_MP_OUTFIT_MASK_NAME - Enum missing tell Tom F. - ", eMask)
SCRIPT_ASSERT("GET_MP_OUTFIT_NAME - Enum missing tell Tom F.")
RETURN "INVALID"
ENDFUNC
FUNC INT GET_MP_VERSUS_OUTFIT_ADJUSTED_TEAMS(INT iNumberOfTeams)
INT i
REPEAT FMMC_MAX_TEAMS i
IF g_FMMC_STRUCT.iTeamOutfitOverride[i] != -1
iNumberOfTeams--
ENDIF
ENDREPEAT
RETURN iNumberOfTeams
ENDFUNC
/// PURPOSE:
/// Query if the team has an overridden outfit style
FUNC BOOL DOES_CORONA_TEAM_HAVE_BEAST_OUTFIT(INT iTeam)
IF iTeam >= 0 AND iTeam < FMMC_MAX_TEAMS
RETURN IS_BIT_SET(g_FMMC_STRUCT.sFMMCEndConditions[iTeam].iTeamBitset2, ciBS2_ENABLE_BEAST_OUTFIT)
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Returns the correct name for the VS outfit setup
FUNC STRING GET_MP_VERSUS_OUTFIT_SETUP_TEXT(INT iStyleSetup, VERSUS_OUTFIT_STYLE eStyle, INT iNumberOfTeams = 2)
iNumberOfTeams = GET_MP_VERSUS_OUTFIT_ADJUSTED_TEAMS(iNumberOfTeams)
SWITCH iStyleSetup
// Corona Classic Selection
CASE VS_STYLE_CLASSIC
SWITCH eStyle
CASE VS_CLASSIC_COMBO_0
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MC0"
ELSE
RETURN "VS_STYLE_C0"
ENDIF
BREAK
CASE VS_CLASSIC_COMBO_1
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MC1"
ELSE
RETURN "VS_STYLE_C1"
ENDIF
BREAK
CASE VS_CLASSIC_COMBO_2 RETURN "VS_STYLE_C2"
CASE VS_CLASSIC_COMBO_3 RETURN "VS_STYLE_C3"
CASE VS_CLASSIC_COMBO_4 RETURN "VS_STYLE_C4"
CASE VS_CLASSIC_COMBO_5 RETURN "VS_STYLE_C5"
CASE VS_CLASSIC_COMBO_6 RETURN "VS_STYLE_C6"
CASE VS_CLASSIC_COMBO_7 RETURN "VS_STYLE_C7"
CASE VS_CLASSIC_COMBO_8
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MC8"
ELSE
RETURN "VS_STYLE_C8"
ENDIF
BREAK
CASE VS_CLASSIC_COMBO_9 RETURN "VS_STYLE_C9"
CASE VS_CLASSIC_COMBO_10
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MC10"
ELSE
RETURN "VS_STYLE_C10"
ENDIF
BREAK
CASE VS_CLASSIC_COMBO_11 RETURN "VS_STYLE_C11"
CASE VS_CLASSIC_COMBO_12 RETURN "VS_STYLE_C12"
ENDSWITCH
BREAK
// Corona Themed Selection
CASE VS_STYLE_THEMED
SWITCH eStyle
CASE VS_THEMED_COMBO_0
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MT2"
ELSE
RETURN "VS_STYLE_T0"
ENDIF
BREAK
CASE VS_THEMED_COMBO_1 RETURN "VS_STYLE_T1"
CASE VS_THEMED_COMBO_2 RETURN "VS_STYLE_T2"
CASE VS_THEMED_COMBO_3
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MT0"
ELSE
RETURN "VS_STYLE_T3"
ENDIF
BREAK
CASE VS_THEMED_COMBO_4 RETURN "VS_STYLE_T4"
CASE VS_THEMED_COMBO_5 RETURN "VS_STYLE_T5"
CASE VS_THEMED_COMBO_6
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MT1"
ELSE
RETURN "VS_STYLE_T6"
ENDIF
BREAK
CASE VS_THEMED_COMBO_7 RETURN "VS_STYLE_T7"
CASE VS_THEMED_COMBO_8 RETURN "VS_STYLE_T8"
CASE VS_THEMED_COMBO_9 RETURN "VS_STYLE_T19"
CASE VS_THEMED_COMBO_10 RETURN "VS_STYLE_T20"
CASE VS_THEMED_COMBO_11 RETURN "VS_STYLE_T21"
CASE VS_THEMED_COMBO_12 RETURN "VS_STYLE_T22"
ENDSWITCH
BREAK
CASE VS_STYLE_HALLOWEEN
SWITCH eStyle
CASE VS_HALLOWEEN_COMBO_0
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MT4"
ELSE
RETURN "VS_STYLE_T9"
ENDIF
BREAK
CASE VS_HALLOWEEN_COMBO_1 RETURN "VS_STYLE_T10"
CASE VS_HALLOWEEN_COMBO_2
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MT5"
ELSE
RETURN "VS_STYLE_T11"
ENDIF
BREAK
CASE VS_HALLOWEEN_COMBO_3 RETURN "VS_STYLE_T12"
CASE VS_HALLOWEEN_COMBO_4
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MT6"
ELSE
RETURN "VS_STYLE_T13"
ENDIF
BREAK
CASE VS_HALLOWEEN_COMBO_5 RETURN "VS_STYLE_T14"
ENDSWITCH
BREAK
CASE VS_STYLE_SOLO
SWITCH eStyle
CASE VS_SOLO_COMBO_0
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MT7"
ELSE
RETURN "VS_STYLE_T15"
ENDIF
BREAK
CASE VS_SOLO_COMBO_1 RETURN "VS_STYLE_T16"
CASE VS_SOLO_COMBO_2
IF iNumberOfTeams > 2
RETURN "VS_STYLE_ST0"
ELSE
RETURN "VS_STYLE_S0"
ENDIF
BREAK
CASE VS_SOLO_COMBO_3 RETURN "VS_STYLE_S1"
CASE VS_SOLO_COMBO_4
IF iNumberOfTeams > 2
RETURN "VS_STYLE_ST1"
ELSE
RETURN "VS_STYLE_S2"
ENDIF
BREAK
CASE VS_SOLO_COMBO_5 RETURN "VS_STYLE_S3"
CASE VS_SOLO_COMBO_6
IF iNumberOfTeams > 2
RETURN "VS_STYLE_ST2"
ELSE
RETURN "VS_STYLE_S4"
ENDIF
BREAK
CASE VS_SOLO_COMBO_7 RETURN "VS_STYLE_S5"
CASE VS_SOLO_COMBO_8
IF iNumberOfTeams > 2
RETURN "VS_STYLE_ST3"
ELSE
RETURN "VS_STYLE_S6"
ENDIF
BREAK
CASE VS_SOLO_COMBO_9 RETURN "VS_STYLE_S7"
CASE VS_SOLO_COMBO_10
IF iNumberOfTeams > 2
RETURN "VS_STYLE_MT8"
ELSE
RETURN "VS_STYLE_T17"
ENDIF
BREAK
CASE VS_SOLO_COMBO_11 RETURN "VS_STYLE_T18"
ENDSWITCH
BREAK
CASE VS_STYLE_HIDDEN
SWITCH eStyle
CASE VS_HIDDEN_COMBO_0
IF iNumberOfTeams > 2
RETURN "VS_STYLE_BT0"
ELSE
RETURN "VS_STYLE_B0"
ENDIF
BREAK
CASE VS_HIDDEN_COMBO_1 RETURN "VS_STYLE_B1"
#IF IS_DEBUG_BUILD
CASE VS_HIDDEN_COMBO_2
IF iNumberOfTeams > 2
RETURN "VS_STYLE_HT2"
ELSE
RETURN "VS_STYLE_H2"
ENDIF
BREAK
CASE VS_HIDDEN_COMBO_3 RETURN "VS_STYLE_H3"
CASE VS_HIDDEN_COMBO_4
IF iNumberOfTeams > 2
RETURN "VS_STYLE_HT4"
ELSE
RETURN "VS_STYLE_H4"
ENDIF
BREAK
CASE VS_HIDDEN_COMBO_5 RETURN "VS_STYLE_H5"
CASE VS_HIDDEN_COMBO_6
IF iNumberOfTeams > 2
RETURN "VS_STYLE_HT6"
ELSE
RETURN "VS_STYLE_H6"
ENDIF
BREAK
CASE VS_HIDDEN_COMBO_7 RETURN "VS_STYLE_H7"
CASE VS_HIDDEN_COMBO_8
IF iNumberOfTeams > 2
RETURN "VS_STYLE_HT8"
ELSE
RETURN "VS_STYLE_H8"
ENDIF
BREAK
CASE VS_HIDDEN_COMBO_9 RETURN "VS_STYLE_H9"
CASE VS_HIDDEN_COMBO_10
IF iNumberOfTeams > 2
RETURN "VS_STYLE_TDT0"
ELSE
RETURN "VS_STYLE_TD0"
ENDIF
BREAK
CASE VS_HIDDEN_COMBO_11 RETURN "VS_STYLE_TD1"
CASE VS_HIDDEN_COMBO_12
IF iNumberOfTeams > 2
RETURN "VS_STYLE_TLT0"
ELSE
RETURN "VS_STYLE_TL0"
ENDIF
BREAK
CASE VS_HIDDEN_COMBO_13 RETURN "VS_STYLE_TL1"
CASE VS_HIDDEN_COMBO_14 RETURN "EXEC_TRDING_PLA"
CASE VS_HIDDEN_COMBO_15
IF iNumberOfTeams > 2
RETURN "EXEC_TM_SPRT_COMB"
ELSE
RETURN "EXEC_TM_SPRT"
ENDIF
BREAK
CASE VS_HIDDEN_COMBO_16 RETURN "EXEC_TM_SPRT_2"
CASE VS_HIDDEN_COMBO_17 RETURN "BIKER_LOST"
CASE VS_HIDDEN_COMBO_18 RETURN "BIKER_DLINE"
CASE VS_HIDDEN_COMBO_19 RETURN "BIKER_SLIPS"
CASE VS_HIDDEN_COMBO_20 RETURN "IMPEXP_TWAR"
CASE VS_HIDDEN_COMBO_21 RETURN "IMPEXP_JUG"
CASE VS_HIDDEN_COMBO_22 RETURN "IMPEXP_JUG4"
CASE VS_HIDDEN_COMBO_23 RETURN "VS_GENCOMBAT"
CASE VS_HIDDEN_COMBO_24 RETURN "VS_SR_LG"
CASE VS_HIDDEN_COMBO_25 RETURN "VS_LIONSDEN"
CASE VS_HIDDEN_COMBO_26 RETURN "VS_DAWNRAID"
CASE VS_HIDDEN_COMBO_27 RETURN "VS_TEAMGEN"
CASE VS_HIDDEN_COMBO_28 RETURN "VS_POWERMAD"
CASE VS_HIDDEN_COMBO_29 RETURN "VS_HOSTTAKE"
CASE VS_HIDDEN_COMBO_30 RETURN "VS_CONDEMN"
CASE VS_HIDDEN_COMBO_31 RETURN "VS_VEHWAR"
CASE VS_HIDDEN_COMBO_32 RETURN "VS_AIRSHOOT"
CASE VS_HIDDEN_COMBO_33 RETURN "VS_BOMBRUN"
CASE VS_HIDDEN_COMBO_34 RETURN "VS_STOCKPL"
CASE VS_HIDDEN_COMBO_35 RETURN "VS_SLASH_1"
CASE VS_HIDDEN_COMBO_36 RETURN "VS_SLASH_2"
CASE VS_HIDDEN_COMBO_37 RETURN "VS_HARDTARGET"
CASE VS_HIDDEN_COMBO_38 RETURN "VS_AIRQUOTA"
CASE VS_HIDDEN_COMBO_39 RETURN "VS_SHOWDWN"
CASE VS_HIDDEN_COMBO_40 RETURN "VS_TRAPDOOR"
CASE VS_HIDDEN_COMBO_41 RETURN "VS_VENETIAN"
CASE VS_HIDDEN_COMBO_42 RETURN "VS_DROPBOMB"
CASE VS_HIDDEN_COMBO_43 RETURN "VS_SUMORUN"
CASE VS_HIDDEN_COMBO_44 RETURN "VS_OFFDEF"
CASE VS_HIDDEN_COMBO_45 RETURN "VS_HUNTPACK"
CASE VS_HIDDEN_COMBO_46 RETURN "VS_TRADPLAC"
CASE VS_HIDDEN_COMBO_47 RETURN "VS_COTP"
CASE VS_HIDDEN_COMBO_48 RETURN "VS_RUNBACK"
CASE VS_HIDDEN_COMBO_49 RETURN "VS_RUNBACK2"
CASE VS_HIDDEN_COMBO_50 RETURN "VS_RUNBACK3"
CASE VS_HIDDEN_COMBO_51 RETURN "VS_SPACELING"
CASE VS_HIDDEN_COMBO_52 RETURN "VS_SUM22HAL"
#ENDIF
ENDSWITCH
BREAK
#IF IS_DEBUG_BUILD
CASE VS_STYLE_ENTOURAGE
SWITCH eStyle
CASE VS_ENTOURAGE_COMBO_0 RETURN "VS_STYLE_D0"
CASE VS_ENTOURAGE_COMBO_1 RETURN "VS_STYLE_D1"
ENDSWITCH
BREAK
#ENDIF
ENDSWITCH
PRINTLN("GET_MP_VERSUS_OUTFIT_SETUP_TEXT - Unknown style or outfit. iStyleSetup = ", iStyleSetup, ", eStyle = ", ENUM_TO_INT(eStyle))
SCRIPT_ASSERT("GET_MP_VERSUS_OUTFIT_SETUP_TEXT - Unknown iStyleSetup or eStyle passed. See log for details")
RETURN ""
ENDFUNC
/// PURPOSE:
/// Returns the total number of outfit combinations available to the host
FUNC INT GET_MP_VERSUS_OUTFIT_MAX(INT iStyleSetup)
SWITCH iStyleSetup
CASE VS_STYLE_CLASSIC RETURN ENUM_TO_INT(VS_CLASSIC_MAX)
CASE VS_STYLE_THEMED RETURN ENUM_TO_INT(VS_THEMED_MAX)
CASE VS_STYLE_HALLOWEEN RETURN ENUM_TO_INT(VS_HALLOWEEN_MAX)
CASE VS_STYLE_ENTOURAGE RETURN ENUM_TO_INT(VS_ENTOURAGE_MAX)
CASE VS_STYLE_SOLO RETURN ENUM_TO_INT(VS_SOLO_MAX)
CASE VS_STYLE_HIDDEN RETURN ENUM_TO_INT(VS_HIDDEN_MAX)
ENDSWITCH
RETURN 0
ENDFUNC
/// PURPOSE:
/// Returns the max outfits based on the initial outfit you return. use GET_MP_VERSUS_OUTFIT_DEFAULT from below to get the default outfit
FUNC INT GET_MP_VERSUS_MAX_OUTFITS_FOR_STYLE(MP_OUTFIT_ENUM eVersusOutfit)
SWITCH eVersusOutfit
CASE OUTFIT_VERSUS_CLASSIC_SCIENTISTS_0 RETURN 3
CASE OUTFIT_VERSUS_ENTOURAGE_VIP_0 RETURN 1
CASE OUTFIT_VERSUS_ENTOURAGE_ATTACKER_0 RETURN 4
CASE OUTFIT_VERSUS_ENTOURAGE_DEFENDER_0 RETURN 3
CASE OUTFIT_VERSUS_EXTRACTION_VIP_0 RETURN 1
CASE OUTFIT_ADVERSARY_B_OVERRIDE_0 RETURN 12
CASE OUTFIT_LOW_FLOW_WOLVES_0
CASE OUTFIT_LOW_FLOW_EAGLES_0
CASE OUTFIT_LOW_FLOW_BULLS_0
CASE OUTFIT_LOW_FLOW_BEARS_0
CASE OUTFIT_SOLO_SENIORS_0
CASE OUTFIT_SOLO_GENTS_0
CASE OUTFIT_SOLO_FRANKS_0
CASE OUTFIT_SOLO_VAMPS_0
CASE OUTFIT_SOLO_KITTENS_0
CASE OUTFIT_SOLO_FOXES_0
CASE OUTFIT_SOLO_RACCOONS_0
CASE OUTFIT_SOLO_OWLS_0
CASE OUTFIT_SOLO_BUGS_0
CASE OUTFIT_SOLO_PIGS_0
CASE OUTFIT_SOLO_FROST_0
CASE OUTFIT_SOLO_POLAR_0
CASE OUTFIT_SOLO_REPTILIANS_0
CASE OUTFIT_SOLO_SATANS_0
CASE OUTFIT_SOLO_SUBURBIA_0
CASE OUTFIT_SOLO_MONSTER_MILITIA_0
CASE OUTFIT_LOW_FLOW_NORTH_0
CASE OUTFIT_LOW_FLOW_SOUTH_0
CASE OUTFIT_LOW_FLOW_STARS_0
CASE OUTFIT_LOW_FLOW_STRIPES_0
RETURN 1
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0
RETURN 2
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0
RETURN 4
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_DROP_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_DROP_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0
RETURN 1
CASE OUTFIT_VERSUS_LOWR2_BROWN_SPORT_0
CASE OUTFIT_VERSUS_LOWR2_WHITE_SPORT_0
RETURN 6
CASE OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_GREEN_0
RETURN 1
CASE OUTFIT_HIDDEN_TEAM_STUNT_BIKER_PURPLE_0
CASE OUTFIT_HIDDEN_TEAM_STUNT_BIKER_ORANGE_0
CASE OUTFIT_HIDDEN_TEAM_STUNT_BIKER_PINK_0
CASE OUTFIT_HIDDEN_TEAM_STUNT_BIKER_GREEN_0
CASE OUTFIT_HIDDEN_DEADLINE_PURPLE_0
CASE OUTFIT_HIDDEN_DEADLINE_ORANGE_0
CASE OUTFIT_HIDDEN_DEADLINE_PINK_0
CASE OUTFIT_HIDDEN_DEADLINE_GREEN_0
RETURN 1
CASE OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_BLUE_0
CASE OUTFIT_HIDDEN_IE_JN_TARGET_0
CASE OUTFIT_HIDDEN_IE_JN4_ORANGE_TARGET_0
CASE OUTFIT_HIDDEN_IE_JN4_PURPLE_TARGET_0
RETURN 1
CASE OUTFIT_HIDDEN_SR_LG_ORANGE_0
CASE OUTFIT_HIDDEN_SR_LG_BLUE_0
CASE OUTFIT_HIDDEN_SR_LG_PINK_0
CASE OUTFIT_HIDDEN_SR_LG_GREEN_0
RETURN 1
CASE OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_GREEN_0
RETURN 1
CASE OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_GREEN_0
RETURN 2
CASE OUTFIT_HIDDEN_HOSTILE_TAKEOVER_GREEN_0
CASE OUTFIT_HIDDEN_HOSTILE_TAKEOVER_ORANGE_0
CASE OUTFIT_HIDDEN_HOSTILE_TAKEOVER_PURPLE_0
CASE OUTFIT_HIDDEN_HOSTILE_TAKEOVER_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_SM_CND_0
CASE OUTFIT_VERSUS_HIDDEN_SM_CND_1
CASE OUTFIT_VERSUS_HIDDEN_SM_CND_2
CASE OUTFIT_VERSUS_HIDDEN_SM_CND_3
CASE OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_GREEN_0
RETURN 1
CASE OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_BLACK_0
CASE OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_BLACK_1
CASE OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_BLACK_2
CASE OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_BLACK_3
CASE OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_0
CASE OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_1
CASE OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_2
CASE OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_3
RETURN 4
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_0
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_1
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_2
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_3
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_4
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_5
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_6
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_7
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_0
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_1
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_2
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_3
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_4
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_5
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_6
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_7
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_0
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_1
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_2
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_3
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_4
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_5
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_6
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_7
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_0
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_1
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_2
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_3
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_4
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_5
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_6
CASE OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_7
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_0
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_1
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_2
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_3
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_4
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_5
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_6
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_7
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_1
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_2
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_3
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_4
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_5
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_6
CASE OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_7
RETURN 8
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PURPLE_1
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PURPLE_2
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PURPLE_3
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_ORANGE_1
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_ORANGE_2
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_ORANGE_3
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PINK_1
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PINK_2
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PINK_3
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_GREEN_1
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_GREEN_2
CASE OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_GREEN_3
RETURN 4
ENDSWITCH
SWITCH eVersusOutfit
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PURPLE_1
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PURPLE_2
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PURPLE_3
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_ORANGE_1
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_ORANGE_2
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_ORANGE_3
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PINK_1
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PINK_2
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PINK_3
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_GREEN_1
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_GREEN_2
CASE OUTFIT_VERSUS_HIDDEN_SHOWDOWN_GREEN_3
RETURN 4
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PURPLE_1
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PURPLE_2
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PURPLE_3
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_ORANGE_1
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_ORANGE_2
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_ORANGE_3
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PINK_1
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PINK_2
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PINK_3
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_GREEN_1
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_GREEN_2
CASE OUTFIT_VERSUS_HIDDEN_TRAPDOOR_GREEN_3
RETURN 4
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_COP
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_ROBBER_RED
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_ROBBER_BLUE
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_ROBBER_WHITE
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_ROBBER_GRAY
RETURN 1
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_BLUE
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_RED
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_WHITE
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_GREEN
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_ORANGE
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_PURPLE
CASE OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_PINK
RETURN 7
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_1
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_2
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_3
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_1
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_2
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_3
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_1
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_2
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_3
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_1
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_2
CASE OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_3
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_1
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_2
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_3
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_1
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_2
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_3
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_1
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_2
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_3
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_1
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_2
CASE OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_3
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_0
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_1
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_2
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_3
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_0
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_1
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_2
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_3
CASE OUTFIT_VERSUS_HIDDEN_SPACELING_0
CASE OUTFIT_VERSUS_HIDDEN_SPACELING_1
CASE OUTFIT_VERSUS_HIDDEN_SPACELING_2
CASE OUTFIT_VERSUS_HIDDEN_SPACELING_3
RETURN 4
CASE OUTFIT_VERSUS_HIDDEN_SUMORUN_PURPLE_0
CASE OUTFIT_VERSUS_HIDDEN_SUMORUN_ORANGE_0
CASE OUTFIT_VERSUS_HIDDEN_SUMORUN_PINK_0
CASE OUTFIT_VERSUS_HIDDEN_SUMORUN_GREEN_0
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_RUNNER_0
CASE OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_RUNNER_0
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_BLACK
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_WHITE
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_RED
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_BLUE
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREEN
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOW
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREENGLOW
CASE OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOWGLOW
RETURN 1
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_0
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_1
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_2
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_3
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_4
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_5
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_6
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_7
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_0
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_1
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_2
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_3
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_4
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_5
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_6
CASE OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_7
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_0
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_1
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_2
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_3
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_4
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_5
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_6
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_7
RETURN 8
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_RUNNER_0
CASE OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_RUNNER_1
RETURN 2
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_0
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_1
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_2
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_3
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_4
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_5
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_6
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_7
RETURN 8
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_0
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_1
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_2
CASE OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_3
RETURN 4
DEFAULT
RETURN 6
ENDSWITCH
RETURN 1
ENDFUNC
/// PURPOSE:
/// Returns the outfit enum for the passed Versus setup (Classic / Themed), the style chosen and the players team and index
FUNC MP_OUTFIT_ENUM GET_MP_VERSUS_OUTFIT_DEFAULT(INT iStyleSetup, VERSUS_OUTFIT_STYLE eVersusStyle, INT iTeam)
#IF IS_DEBUG_BUILD
IF iTeam < 0
OR iTeam > 3
PRINTLN("GET_MP_VERSUS_OUTFIT_DEFAULT - Passed team is invalid, iTeam = ", iTeam)
SCRIPT_ASSERT("GET_MP_VERSUS_OUTFIT_DEFAULT - Passed team is invalid")
ENDIF
#ENDIF
// If the creator has overridden an outfit for the team we should return that teams outfit instead
IF (iTeam != -1 AND iTeam < FMMC_MAX_TEAMS)
IF g_FMMC_STRUCT.iTeamOutfitOverride[iTeam] != -1
PRINTLN("GET_MP_VERSUS_OUTFIT_DEFAULT - Overriding team outfit, g_FMMC_STRUCT.iTeamOutfitOverride[", iTeam, "] = ", g_FMMC_STRUCT.iTeamOutfitOverride[iTeam])
iTeam = g_FMMC_STRUCT.iTeamOutfitOverride[iTeam]
ENDIF
ENDIF
// If the creator has flagged that this team has a beast outfit, return immediately
IF DOES_CORONA_TEAM_HAVE_BEAST_OUTFIT(iTeam)
AND NOT IS_THIS_ROCKSTAR_MISSION_NEW_VS_TRADING_PLACES_REMIX(g_FMMC_STRUCT.iAdversaryModeType)
PRINTLN("GET_MP_VERSUS_OUTFIT_DEFAULT - Overriding team outfit to BEAST, iTeam = ", iTeam)
RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, OUTFIT_ADVERSARY_B_OVERRIDE_0)
ENDIF
SWITCH iStyleSetup
CASE VS_STYLE_CLASSIC
SWITCH eVersusStyle
CASE VS_CLASSIC_COMBO_0
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_JUNGLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_STEEL_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DUNE_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_SWAMP_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_1
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_STREET_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_TACTICAL_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BALLAS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_FAMILIES_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_2
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DUNE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_SWAMP_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DUNE_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DUNE_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_3
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_FAMILIES_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BALLAS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_FAMILIES_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_FAMILIES_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_4
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_HITMEN_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_ASSASSINS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_HITMEN_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_HITMEN_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_5
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_COPS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_CRIMINALS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_COPS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_COPS_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_6
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BIKERS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_7
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BLACK_TUX_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_WHITE_TUX_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BLACK_TUX_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BLACK_TUX_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_8
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_BLUE_SMART_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_RED_SMART_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_WHITE_SMART_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_BLACK_SMART_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_9
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_WHITE_SMART_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_BLACK_SMART_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_WHITE_SMART_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_BLACK_SMART_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_10
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_YELLOW_SPORT_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_GREEN_SPORT_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_WHITE_STREET_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_RED_STREET_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_11
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_WHITE_STREET_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_RED_STREET_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_WHITE_STREET_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR_RED_STREET_0))
ENDSWITCH
BREAK
CASE VS_CLASSIC_COMBO_12
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR2_BROWN_SPORT_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR2_WHITE_SPORT_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR2_BROWN_SPORT_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_LOWR2_WHITE_SPORT_0))
ENDSWITCH
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_THEMED
SWITCH eVersusStyle
CASE VS_THEMED_COMBO_0
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_SLASHERS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_BUBBLEGUMS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DEVILS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_ANGELS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_1
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_STINKERS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_WIMPEES_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_STINKERS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_STINKERS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_2
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DEVILS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_ANGELS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DEVILS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DEVILS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_3
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_MONKEYS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_SCIENTISTS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_CATS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BIRDS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_4
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_CATS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BIRDS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_CATS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_CATS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_5
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BLUE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BLUE_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_BLUE_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_6
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_WEREWOLVES_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_MUMMIES_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_RAVENS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_GHOULS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_7
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_RAVENS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_GHOULS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_RAVENS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_RAVENS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_8
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_ZOMBIES_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_COWBOYS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_ZOMBIES_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_ZOMBIES_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_9
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_10
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_MONO_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_MONO_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_MONO_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_11
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_COOKIES_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_0))
ENDSWITCH
BREAK
CASE VS_THEMED_COMBO_12
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0))
ENDSWITCH
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_HALLOWEEN
SWITCH eVersusStyle
CASE VS_HALLOWEEN_COMBO_0
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_MANIACS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_HOWLERS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_RETILIANS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_SATANS_0))
ENDSWITCH
BREAK
CASE VS_HALLOWEEN_COMBO_1
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_RETILIANS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_SATANS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_RETILIANS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_RETILIANS_0))
ENDSWITCH
BREAK
CASE VS_HALLOWEEN_COMBO_2
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_DOUBLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_TRICKSTERS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_SUBURBIA_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_MONSTER_MILITIA_0))
ENDSWITCH
BREAK
CASE VS_HALLOWEEN_COMBO_3
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_SUBURBIA_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_MONSTER_MILITIA_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_SUBURBIA_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_SUBURBIA_0))
ENDSWITCH
BREAK
CASE VS_HALLOWEEN_COMBO_4
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_PSYCHOS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_UNDEAD_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_DWELLERS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_PIMP_WITCHES_0))
ENDSWITCH
BREAK
CASE VS_HALLOWEEN_COMBO_5
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_DWELLERS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_PIMP_WITCHES_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_DWELLERS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HAL_DWELLERS_0))
ENDSWITCH
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_SOLO
SWITCH eVersusStyle
CASE VS_SOLO_COMBO_0
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_WOLVES_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_EAGLES_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_BEARS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_BULLS_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_1
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_BEARS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_BULLS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_BEARS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_BULLS_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_2
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_SENIORS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_GENTS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_FRANKS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_VAMPS_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_3
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_FRANKS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_VAMPS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_FRANKS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_VAMPS_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_4
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_KITTENS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_FOXES_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_RACCOONS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_OWLS_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_5
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_RACCOONS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_OWLS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_RACCOONS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_OWLS_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_6
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_BUGS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_PIGS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_FROST_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_POLAR_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_7
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_FROST_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_POLAR_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_FROST_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_POLAR_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_8
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_REPTILIANS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_SATANS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_SUBURBIA_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_MONSTER_MILITIA_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_9
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_SUBURBIA_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_MONSTER_MILITIA_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_SUBURBIA_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_SOLO_MONSTER_MILITIA_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_10
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_NORTH_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_SOUTH_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_STRIPES_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_STARS_0))
ENDSWITCH
BREAK
CASE VS_SOLO_COMBO_11
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_STRIPES_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_STARS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_STRIPES_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_LOW_FLOW_STARS_0))
ENDSWITCH
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_ENTOURAGE
SWITCH eVersusStyle
CASE VS_ENTOURAGE_COMBO_0
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_ENTOURAGE_VIP_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_ENTOURAGE_DEFENDER_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_ENTOURAGE_ATTACKER_0))
ENDSWITCH
BREAK
CASE VS_ENTOURAGE_COMBO_1
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_ENTOURAGE_ATTACKER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_ENTOURAGE_DEFENDER_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXTRACTION_VIP_0))
ENDSWITCH
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_HIDDEN
// 2712297 - Alter the team outfit colour order for all unreleased Adversary Modes for Lowrider 2 onwards.
IF SHOULD_USE_NEW_TEAM_COLOUR_ORDER()
SWITCH eVersusStyle
CASE VS_HIDDEN_COMBO_2
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_GREEN_0)) // 4
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_3
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_GREEN_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_4
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_GREEN_0)) // 4
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_5
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_GREEN_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_6
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_GREEN_0)) // 4
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_7
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_GREEN_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_8
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0)) // 4
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_9
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_10
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_ORANGE_0)) // 4
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_11
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_GREEN_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_12
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_0)) // 4
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_13
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_14
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXEC1_TRADING_WINNER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXEC1_TRADING_LOSER_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXEC1_TRADING_WINNER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXEC1_TRADING_LOSER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_15
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_ORANGE_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_16
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_GREEN_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_17
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LOST_DEVILS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LOST_ANGELS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LOST_DEVILS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LOST_ANGELS_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_18
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DEADLINE_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DEADLINE_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DEADLINE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DEADLINE_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_19
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_TEAM_STUNT_BIKER_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_TEAM_STUNT_BIKER_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_TEAM_STUNT_BIKER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_TEAM_STUNT_BIKER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_20
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_BLUE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_21
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN_ATTACKER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN_TARGET_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN_ATTACKER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN_TARGET_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_22
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN4_ORANGE_ATTACKER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN4_PURPLE_ATTACKER_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN4_ORANGE_TARGET_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN4_PURPLE_TARGET_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_23
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_GENCOMBAT_FOREST_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_GENCOMBAT_URBAN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_GENCOMBAT_FOREST_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_GENCOMBAT_URBAN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_24
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_SR_LG_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_SR_LG_BLUE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_SR_LG_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_SR_LG_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_25
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LIONSDEN_ATTACKER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LIONSDEN_DEFENDER_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LIONSDEN_ATTACKER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LIONSDEN_DEFENDER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_26
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DAWNRAID_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DAWNRAID_PURPLE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DAWNRAID_ORANGE_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DAWNRAID_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_27
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_PURPLE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_28
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_PURPLE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_29
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_HOSTILE_TAKEOVER_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_HOSTILE_TAKEOVER_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_HOSTILE_TAKEOVER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_HOSTILE_TAKEOVER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_30
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_CND_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_CND_1))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_CND_2))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_CND_3))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_31
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_32
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_33
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_BLACK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_BLACK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_34
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_35
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_36
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_37
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_38
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_39
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SHOWDOWN_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SHOWDOWN_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_40
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRAPDOOR_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRAPDOOR_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_41
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_VENETIAN_COP))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_BLUE))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_VENETIAN_COP))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_BLUE))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_42
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_43
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUMORUN_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUMORUN_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUMORUN_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUMORUN_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_44
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_45
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_RUNNER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_RUNNER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_46
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_47
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_RUNNER_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_RUNNER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_48
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_BLACK))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_WHITE))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_RED))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_BLUE))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_49
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREEN))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOW))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREEN))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOW))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_50
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREENGLOW))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOWGLOW))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREENGLOW))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOWGLOW))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_51
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SPACELING_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SPACELING_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SPACELING_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SPACELING_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_52
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_0))
ENDSWITCH
BREAK
ENDSWITCH
ENDIF
SWITCH eVersusStyle
CASE VS_HIDDEN_COMBO_0
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DUNE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_SWAMP_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_METAL_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_TACTICAL_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_1
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_DUNE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_SWAMP_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_METAL_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_CLASSIC_TACTICAL_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_2
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_GREEN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PURPLE_0)) // 4
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_3
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PURPLE_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VINTAGE_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_4
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_GREEN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PURPLE_0)) // 4
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_5
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PURPLE_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_HEAVY_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_6
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_GREEN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PURPLE_0)) // 4
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_7
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PURPLE_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_VEHICLE_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_8
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PURPLE_0)) // 4
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_9
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PURPLE_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_10
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_GREEN_0)) // 4
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_11
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PURPLE_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_DROP_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_12
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_GREEN_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_ORANGE_0)) // 4
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_13
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PURPLE_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_LOWRIDER_PINK_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_14
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXEC1_TRADING_WINNER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXEC1_TRADING_LOSER_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXEC1_TRADING_WINNER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_EXEC1_TRADING_LOSER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_15
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_ORANGE_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_16
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PINK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_GREEN_0)) // 2
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_GREEN_0)) // 2
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_17
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LOST_DEVILS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LOST_ANGELS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LOST_DEVILS_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LOST_ANGELS_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_18
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DEADLINE_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DEADLINE_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DEADLINE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DEADLINE_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_19
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_TEAM_STUNT_BIKER_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_TEAM_STUNT_BIKER_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_TEAM_STUNT_BIKER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_TEAM_STUNT_BIKER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_20
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_BLUE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_BIKER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_21
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN_ATTACKER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN_TARGET_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN_TARGET_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN_ATTACKER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_22
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN4_ORANGE_ATTACKER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN4_PURPLE_ATTACKER_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN4_ORANGE_TARGET_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_IE_JN4_PURPLE_TARGET_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_23
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_GENCOMBAT_FOREST_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_GENCOMBAT_URBAN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_GENCOMBAT_FOREST_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_GENCOMBAT_URBAN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_24
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_SR_LG_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_SR_LG_BLUE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_SR_LG_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_SR_LG_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_25
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LIONSDEN_ATTACKER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LIONSDEN_DEFENDER_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LIONSDEN_ATTACKER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_LIONSDEN_DEFENDER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_26
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DAWNRAID_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DAWNRAID_PURPLE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DAWNRAID_ORANGE_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_DAWNRAID_PURPLE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_27
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_PURPLE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TEAM_GENERAL_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_28
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_ORANGE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_PURPLE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GR_POWERMAD_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_29
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_HOSTILE_TAKEOVER_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_HOSTILE_TAKEOVER_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_HOSTILE_TAKEOVER_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_HIDDEN_HOSTILE_TAKEOVER_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_30
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_CND_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_CND_1))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_CND_2))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_CND_3))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_31
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_VEHICLE_WARFARE_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_32
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_33
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_BLACK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_BLACK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_34
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SM_STOCKPILE_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_35
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_CLOWN_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_GREY_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_36
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_ALIEN_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_SL_GRNBRWN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_37
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_HT_BLACK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_GO_HT_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_38
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_AIR_QUOTA_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_39
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SHOWDOWN_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SHOWDOWN_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SHOWDOWN_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_40
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRAPDOOR_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRAPDOOR_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRAPDOOR_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_41
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_VENETIAN_COP))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_BLUE))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_VENETIAN_COP))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_VENETIAN_FIRESUIT_CLASSIC_BLUE))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_42
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_DROPBOMB_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_DROPBOMB_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_DROPBOMB_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_DROPBOMB_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_43
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUMORUN_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUMORUN_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUMORUN_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUMORUN_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_44
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_OFFDEF_PURPLE_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_OFFDEF_ORANGE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_OFFDEF_PINK_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_OFFDEF_GREEN_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_45
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_HOONS_RUNNER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_HUNTBACK_REMIX_RABBLE_RUNNER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_46
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_BEAST_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_TRADINGPLACES_JUG_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_47
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_RUNNER_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_HUNTER_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_COMEPLAYREMIX_RUNNER_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_48
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_BLACK))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_WHITE))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_RED))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_BLUE))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_49
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREEN))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOW))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREEN))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOW))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_50
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREENGLOW))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOWGLOW))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_GREENGLOW))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_RUNBACKREMIX_YELLOWGLOW))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_51
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SPACELING_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SPACELING_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SPACELING_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SPACELING_0))
ENDSWITCH
BREAK
CASE VS_HIDDEN_COMBO_52
SWITCH iTeam
CASE 0 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_0))
CASE 1 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_RIDERS_0))
CASE 2 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_0))
CASE 3 RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(OUTFIT_VERSUS_HIDDEN_SUM22_HALLOWEEN_HUNTED_0))
ENDSWITCH
BREAK
ENDSWITCH
BREAK
ENDSWITCH
RETURN OUTFIT_MP_DEFAULT
ENDFUNC
FUNC BOOL IS_CORONA_OUTFIT_VALID(INT iStyleSetup, VERSUS_OUTFIT_STYLE eVersusStyle)
IF IS_BIT_SET(g_FMMC_STRUCT.biVSAvailableOutfit[iStyleSetup][0], GET_LONG_BITSET_BIT(ENUM_TO_INT(eVersusStyle)))
OR IS_BIT_SET(g_FMMC_STRUCT.biVSAvailableOutfit[iStyleSetup][1], GET_LONG_BITSET_BIT(ENUM_TO_INT(eVersusStyle)))
OR IS_CORONA_BIT_SET(CORONA_ALLOW_ALL_OUTFITS)
OR IS_BIT_SET(g_FMMC_STRUCT.biVSAllowFutureOutfits, iStyleSetup)
OR GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("fm_mission_creator")) > 0
RETURN TRUE
ENDIF
IF iStyleSetup = VS_STYLE_HALLOWEEN
// Allow all halloween outfits if defaulted and is the selected style
IF (g_sMPTunables.bDEFAULT_OUTFIT_ADVERSARY_HALLOWEEN
OR g_sMPTunables.bENABLE_OUTFIT_ADVERSARY_HALLOWEEN)
AND g_FMMC_STRUCT.biVSAvailableOutfit[iStyleSetup][0] = 0
AND g_FMMC_STRUCT.biVSAvailableOutfit[iStyleSetup][1] = 0
RETURN TRUE
ENDIF
ENDIF
IF iStyleSetup = VS_STYLE_SOLO
// Allow all solo outfits if defaulted and is the selected style
IF (g_sMPTunables.bDEFAULT_OUTFIT_ADVERSARY_SOLO
OR g_sMPTunables.bENABLE_OUTFIT_ADVERSARY_SOLO)
AND g_FMMC_STRUCT.biVSAvailableOutfit[iStyleSetup][0] = 0
AND g_FMMC_STRUCT.biVSAvailableOutfit[iStyleSetup][1] = 0
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Check if the versus outfit style is valid.
FUNC BOOL IS_VERSUS_OUTFIT_STYLE_VALID(INT iStyleSetup, VERSUS_OUTFIT_STYLE eVersusStyle, INT iNumOfTeams)
// With the new affiliation of teams if there is a relationship, reduce the number of teams to allow correct outfit collection
iNumOfTeams = GET_MP_VERSUS_OUTFIT_ADJUSTED_TEAMS(iNumOfTeams)
SWITCH iNumOfTeams
CASE 3
SWITCH iStyleSetup
CASE VS_STYLE_CLASSIC
SWITCH eVersusStyle
CASE VS_CLASSIC_COMBO_0
CASE VS_CLASSIC_COMBO_1
CASE VS_CLASSIC_COMBO_8
CASE VS_CLASSIC_COMBO_10
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_THEMED
SWITCH eVersusStyle
CASE VS_THEMED_COMBO_0
CASE VS_THEMED_COMBO_3
CASE VS_THEMED_COMBO_6
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_HALLOWEEN
SWITCH eVersusStyle
CASE VS_HALLOWEEN_COMBO_0
CASE VS_HALLOWEEN_COMBO_2
CASE VS_HALLOWEEN_COMBO_4
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_ENTOURAGE
SWITCH eVersusStyle
CASE VS_ENTOURAGE_COMBO_0
CASE VS_ENTOURAGE_COMBO_1
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_HIDDEN
SWITCH eVersusStyle
CASE VS_HIDDEN_COMBO_0
CASE VS_HIDDEN_COMBO_2
CASE VS_HIDDEN_COMBO_4
CASE VS_HIDDEN_COMBO_6
CASE VS_HIDDEN_COMBO_8
CASE VS_HIDDEN_COMBO_10
CASE VS_HIDDEN_COMBO_20
CASE VS_HIDDEN_COMBO_21
CASE VS_HIDDEN_COMBO_22
CASE VS_HIDDEN_COMBO_23
CASE VS_HIDDEN_COMBO_24
CASE VS_HIDDEN_COMBO_25
CASE VS_HIDDEN_COMBO_26
CASE VS_HIDDEN_COMBO_27
CASE VS_HIDDEN_COMBO_28
CASE VS_HIDDEN_COMBO_29
CASE VS_HIDDEN_COMBO_30
CASE VS_HIDDEN_COMBO_31
CASE VS_HIDDEN_COMBO_32
CASE VS_HIDDEN_COMBO_33
CASE VS_HIDDEN_COMBO_34
CASE VS_HIDDEN_COMBO_35
CASE VS_HIDDEN_COMBO_36
CASE VS_HIDDEN_COMBO_37
CASE VS_HIDDEN_COMBO_38
CASE VS_HIDDEN_COMBO_39
CASE VS_HIDDEN_COMBO_40
CASE VS_HIDDEN_COMBO_41
CASE VS_HIDDEN_COMBO_42
CASE VS_HIDDEN_COMBO_43
CASE VS_HIDDEN_COMBO_44
CASE VS_HIDDEN_COMBO_45
CASE VS_HIDDEN_COMBO_46
CASE VS_HIDDEN_COMBO_47
CASE VS_HIDDEN_COMBO_48
CASE VS_HIDDEN_COMBO_49
CASE VS_HIDDEN_COMBO_50
CASE VS_HIDDEN_COMBO_51
CASE VS_HIDDEN_COMBO_52
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_SOLO
SWITCH eVersusStyle
CASE VS_SOLO_COMBO_0
CASE VS_SOLO_COMBO_2
CASE VS_SOLO_COMBO_4
CASE VS_SOLO_COMBO_6
CASE VS_SOLO_COMBO_8
CASE VS_SOLO_COMBO_10
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
ENDSWITCH
BREAK
CASE 4
SWITCH iStyleSetup
CASE VS_STYLE_CLASSIC
SWITCH eVersusStyle
CASE VS_CLASSIC_COMBO_0
CASE VS_CLASSIC_COMBO_1
CASE VS_CLASSIC_COMBO_8
CASE VS_CLASSIC_COMBO_10
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_THEMED
SWITCH eVersusStyle
CASE VS_THEMED_COMBO_0
CASE VS_THEMED_COMBO_3
CASE VS_THEMED_COMBO_6
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_HALLOWEEN
SWITCH eVersusStyle
CASE VS_HALLOWEEN_COMBO_0
CASE VS_HALLOWEEN_COMBO_2
CASE VS_HALLOWEEN_COMBO_4
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_HIDDEN
SWITCH eVersusStyle
CASE VS_HIDDEN_COMBO_0
CASE VS_HIDDEN_COMBO_2
CASE VS_HIDDEN_COMBO_4
CASE VS_HIDDEN_COMBO_6
CASE VS_HIDDEN_COMBO_8
CASE VS_HIDDEN_COMBO_10
CASE VS_HIDDEN_COMBO_20
CASE VS_HIDDEN_COMBO_21
CASE VS_HIDDEN_COMBO_22
CASE VS_HIDDEN_COMBO_23
CASE VS_HIDDEN_COMBO_24
CASE VS_HIDDEN_COMBO_25
CASE VS_HIDDEN_COMBO_26
CASE VS_HIDDEN_COMBO_27
CASE VS_HIDDEN_COMBO_28
CASE VS_HIDDEN_COMBO_29
CASE VS_HIDDEN_COMBO_30
CASE VS_HIDDEN_COMBO_31
CASE VS_HIDDEN_COMBO_32
CASE VS_HIDDEN_COMBO_33
CASE VS_HIDDEN_COMBO_34
CASE VS_HIDDEN_COMBO_35
CASE VS_HIDDEN_COMBO_36
CASE VS_HIDDEN_COMBO_37
CASE VS_HIDDEN_COMBO_38
CASE VS_HIDDEN_COMBO_39
CASE VS_HIDDEN_COMBO_40
CASE VS_HIDDEN_COMBO_41
CASE VS_HIDDEN_COMBO_42
CASE VS_HIDDEN_COMBO_43
CASE VS_HIDDEN_COMBO_44
CASE VS_HIDDEN_COMBO_45
CASE VS_HIDDEN_COMBO_46
CASE VS_HIDDEN_COMBO_47
CASE VS_HIDDEN_COMBO_48
CASE VS_HIDDEN_COMBO_49
CASE VS_HIDDEN_COMBO_50
CASE VS_HIDDEN_COMBO_51
CASE VS_HIDDEN_COMBO_52
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE VS_STYLE_SOLO
SWITCH eVersusStyle
CASE VS_SOLO_COMBO_0
CASE VS_SOLO_COMBO_2
CASE VS_SOLO_COMBO_4
CASE VS_SOLO_COMBO_6
CASE VS_SOLO_COMBO_8
CASE VS_SOLO_COMBO_10
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
BREAK
ENDSWITCH
BREAK
DEFAULT
IF IS_CORONA_OUTFIT_VALID(iStyleSetup, eVersusStyle)
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Returns the outfit the player has selected
FUNC MP_OUTFIT_ENUM GET_MP_VERSUS_OUTFIT(INT iStyleSetup, VERSUS_OUTFIT_STYLE eVersusStyle, INT iTeam, INT iIndex)
MP_OUTFIT_ENUM eOutfit = GET_MP_VERSUS_OUTFIT_DEFAULT(iStyleSetup, eVersusStyle, iTeam)
IF eOutfit = OUTFIT_VERSUS_CLASSIC_BLACK_TUX_0
OR eOutfit = OUTFIT_VERSUS_CLASSIC_WHITE_TUX_0
OR eOutfit = OUTFIT_VERSUS_CLASSIC_WIMPEES_0
RETURN eOutfit
ENDIF
RETURN INT_TO_ENUM(MP_OUTFIT_ENUM, ENUM_TO_INT(eOutfit) + iIndex)
ENDFUNC
FUNC STRING GET_MP_VERSUS_OUTFIT_STYLE_NAME(INT iStyleSetup, VERSUS_OUTFIT_STYLE eVersusStyle, INT iTeam)
MP_OUTFIT_ENUM theOutfit = GET_MP_VERSUS_OUTFIT_DEFAULT(iStyleSetup, eVersusStyle, iTeam)
SWITCH theOutfit
CASE OUTFIT_VERSUS_CLASSIC_JUNGLE_0 RETURN "VS_OUTFIT_0"
CASE OUTFIT_VERSUS_CLASSIC_STEEL_0 RETURN "VS_OUTFIT_1"
CASE OUTFIT_VERSUS_CLASSIC_STREET_0 RETURN "VS_OUTFIT_2"
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_0 RETURN "VS_OUTFIT_3"
CASE OUTFIT_VERSUS_CLASSIC_DUNE_0 RETURN "VS_OUTFIT_4"
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_0 RETURN "VS_OUTFIT_5"
CASE OUTFIT_VERSUS_CLASSIC_FAMILIES_0 RETURN "VS_OUTFIT_6"
CASE OUTFIT_VERSUS_CLASSIC_BALLAS_0 RETURN "VS_OUTFIT_7"
CASE OUTFIT_VERSUS_CLASSIC_HITMEN_0 RETURN "VS_OUTFIT_8"
CASE OUTFIT_VERSUS_CLASSIC_ASSASSINS_0 RETURN "VS_OUTFIT_9"
CASE OUTFIT_VERSUS_CLASSIC_COPS_0 RETURN "VS_OUTFIT_10"
CASE OUTFIT_VERSUS_CLASSIC_CRIMINALS_0 RETURN "VS_OUTFIT_11"
CASE OUTFIT_VERSUS_CLASSIC_PROFESSIONALS_0 RETURN "VS_OUTFIT_12"
CASE OUTFIT_VERSUS_CLASSIC_BIKERS_0 RETURN "VS_OUTFIT_13"
CASE OUTFIT_VERSUS_CLASSIC_BLACK_TUX_0 RETURN "VS_OUTFIT_14"
CASE OUTFIT_VERSUS_CLASSIC_WHITE_TUX_0 RETURN "VS_OUTFIT_15"
CASE OUTFIT_VERSUS_THEMED_SLASHERS_0 RETURN "VS_OUTFIT_16"
CASE OUTFIT_VERSUS_THEMED_BUBBLEGUMS_0 RETURN "VS_OUTFIT_17"
CASE OUTFIT_VERSUS_CLASSIC_STINKERS_0 RETURN "VS_OUTFIT_18"
CASE OUTFIT_VERSUS_CLASSIC_WIMPEES_0 RETURN "VS_OUTFIT_19"
CASE OUTFIT_VERSUS_CLASSIC_DEVILS_0 RETURN "VS_OUTFIT_20"
CASE OUTFIT_VERSUS_CLASSIC_ANGELS_0 RETURN "VS_OUTFIT_21"
CASE OUTFIT_VERSUS_CLASSIC_MONKEYS_0 RETURN "VS_OUTFIT_22"
CASE OUTFIT_VERSUS_CLASSIC_SCIENTISTS_0 RETURN "VS_OUTFIT_23"
CASE OUTFIT_VERSUS_CLASSIC_CATS_0 RETURN "VS_OUTFIT_24"
CASE OUTFIT_VERSUS_CLASSIC_BIRDS_0 RETURN "VS_OUTFIT_25"
CASE OUTFIT_VERSUS_CLASSIC_BLUE_0 RETURN "VS_OUTFIT_26"
CASE OUTFIT_VERSUS_CLASSIC_ORANGE_0 RETURN "VS_OUTFIT_27"
CASE OUTFIT_VERSUS_CLASSIC_WEREWOLVES_0 RETURN "VS_OUTFIT_28"
CASE OUTFIT_VERSUS_CLASSIC_MUMMIES_0 RETURN "VS_OUTFIT_29"
CASE OUTFIT_VERSUS_CLASSIC_RAVENS_0 RETURN "VS_OUTFIT_30"
CASE OUTFIT_VERSUS_CLASSIC_GHOULS_0 RETURN "VS_OUTFIT_31"
CASE OUTFIT_VERSUS_CLASSIC_ZOMBIES_0 RETURN "VS_OUTFIT_32"
CASE OUTFIT_VERSUS_CLASSIC_COWBOYS_0 RETURN "VS_OUTFIT_33"
CASE OUTFIT_VERSUS_HAL_MANIACS_0 RETURN "VS_OUTFIT_38"
CASE OUTFIT_VERSUS_HAL_HOWLERS_0 RETURN "VS_OUTFIT_39"
CASE OUTFIT_VERSUS_HAL_RETILIANS_0 RETURN "VS_OUTFIT_40"
CASE OUTFIT_VERSUS_HAL_SATANS_0 RETURN "VS_OUTFIT_41"
CASE OUTFIT_VERSUS_HAL_DOUBLE_0 RETURN "VS_OUTFIT_42"
CASE OUTFIT_VERSUS_HAL_TRICKSTERS_0 RETURN "VS_OUTFIT_43"
CASE OUTFIT_VERSUS_HAL_SUBURBIA_0 RETURN "VS_OUTFIT_44"
CASE OUTFIT_VERSUS_HAL_MONSTER_MILITIA_0 RETURN "VS_OUTFIT_45"
CASE OUTFIT_VERSUS_HAL_PSYCHOS_0 RETURN "VS_OUTFIT_46"
CASE OUTFIT_VERSUS_HAL_UNDEAD_0 RETURN "VS_OUTFIT_47"
CASE OUTFIT_VERSUS_HAL_DWELLERS_0 RETURN "VS_OUTFIT_48"
CASE OUTFIT_VERSUS_HAL_PIMP_WITCHES_0 RETURN "VS_OUTFIT_49"
CASE OUTFIT_LOW_FLOW_WOLVES_0 RETURN "VS_OUTFIT_50"
CASE OUTFIT_LOW_FLOW_EAGLES_0 RETURN "VS_OUTFIT_51"
CASE OUTFIT_LOW_FLOW_BULLS_0 RETURN "VS_OUTFIT_52"
CASE OUTFIT_LOW_FLOW_BEARS_0 RETURN "VS_OUTFIT_53"
CASE OUTFIT_SOLO_SENIORS_0 RETURN "VS_OUTFIT_S0"
CASE OUTFIT_SOLO_GENTS_0 RETURN "VS_OUTFIT_S1"
CASE OUTFIT_SOLO_FRANKS_0 RETURN "VS_OUTFIT_S2"
CASE OUTFIT_SOLO_VAMPS_0 RETURN "VS_OUTFIT_S3"
CASE OUTFIT_SOLO_KITTENS_0 RETURN "VS_OUTFIT_S4"
CASE OUTFIT_SOLO_FOXES_0 RETURN "VS_OUTFIT_S5"
CASE OUTFIT_SOLO_RACCOONS_0 RETURN "VS_OUTFIT_S6"
CASE OUTFIT_SOLO_OWLS_0 RETURN "VS_OUTFIT_S7"
CASE OUTFIT_SOLO_BUGS_0 RETURN "VS_OUTFIT_S8"
CASE OUTFIT_SOLO_PIGS_0 RETURN "VS_OUTFIT_S9"
CASE OUTFIT_SOLO_FROST_0 RETURN "VS_OUTFIT_S10"
CASE OUTFIT_SOLO_POLAR_0 RETURN "VS_OUTFIT_S11"
CASE OUTFIT_SOLO_REPTILIANS_0 RETURN "VS_OUTFIT_S12"
CASE OUTFIT_SOLO_SATANS_0 RETURN "VS_OUTFIT_S13"
CASE OUTFIT_SOLO_SUBURBIA_0 RETURN "VS_OUTFIT_S14"
CASE OUTFIT_SOLO_MONSTER_MILITIA_0 RETURN "VS_OUTFIT_S15"
CASE OUTFIT_LOW_FLOW_NORTH_0 RETURN "VS_OUTFIT_54"
CASE OUTFIT_LOW_FLOW_SOUTH_0 RETURN "VS_OUTFIT_55"
CASE OUTFIT_LOW_FLOW_STARS_0 RETURN "VS_OUTFIT_56"
CASE OUTFIT_LOW_FLOW_STRIPES_0 RETURN "VS_OUTFIT_57"
CASE OUTFIT_VERSUS_LOWR_BLUE_SMART_0 RETURN "VS_OUTFIT_58" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_SMART_0 RETURN "VS_OUTFIT_59" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_SMART_0 RETURN "VS_OUTFIT_60" BREAK
CASE OUTFIT_VERSUS_LOWR_BLACK_SMART_0 RETURN "VS_OUTFIT_61" BREAK
CASE OUTFIT_VERSUS_LOWR_YELLOW_SPORT_0 RETURN "VS_OUTFIT_62" BREAK
CASE OUTFIT_VERSUS_LOWR_GREEN_SPORT_0 RETURN "VS_OUTFIT_63" BREAK
CASE OUTFIT_VERSUS_LOWR_WHITE_STREET_0 RETURN "VS_OUTFIT_64" BREAK
CASE OUTFIT_VERSUS_LOWR_RED_STREET_0 RETURN "VS_OUTFIT_65" BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_0 RETURN "VS_OUTFIT_66" BREAK
CASE OUTFIT_VERSUS_CLASSIC_METAL_0 RETURN "VS_OUTFIT_67" BREAK
CASE OUTFIT_VERSUS_LOWR2_BROWN_SPORT_0 RETURN "VS_OUTFIT_68" BREAK
CASE OUTFIT_VERSUS_LOWR2_WHITE_SPORT_0 RETURN "VS_OUTFIT_69" BREAK
CASE OUTFIT_VERSUS_THEMED_EXEC_PURPLE_BUGS_0 RETURN "VS_OUTFIT_70" BREAK
CASE OUTFIT_VERSUS_THEMED_EXEC_ORANGE_BUGS_0 RETURN "VS_OUTFIT_71" BREAK
CASE OUTFIT_VERSUS_THEMED_EXEC_MONO_0 RETURN "VS_OUTFIT_72" BREAK
CASE OUTFIT_VERSUS_THEMED_EXEC_RAINBOW_0 RETURN "VS_OUTFIT_73" BREAK
CASE OUTFIT_VERSUS_THEMED_EXEC_ANIMALS_0 RETURN "VS_OUTFIT_74" BREAK
CASE OUTFIT_VERSUS_THEMED_EXEC_COOKIES_0 RETURN "VS_OUTFIT_75" BREAK
CASE OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_PURPLE_0 RETURN "VS_OUTFIT_76" BREAK
CASE OUTFIT_VERSUS_HIDDEN_TEAM_SPORT_ORANGE_0 RETURN "VS_OUTFIT_77" BREAK
ENDSWITCH
RETURN ""
ENDFUNC
FUNC BOOL IS_MP_HEIST_OUTFIT_IN_STYLE(INT iOutfit, INT iStyle)
HEIST_OUTFIT_SYTLE eStyle = INT_TO_ENUM(HEIST_OUTFIT_SYTLE, iStyle)
MP_OUTFIT_ENUM eOutfit = INT_TO_ENUM(MP_OUTFIT_ENUM, iOutfit)
SWITCH eStyle
CASE OUTFIT_STYLE_STREET
SWITCH eOutfit
CASE OUTFIT_HEIST_STREET_0
CASE OUTFIT_HEIST_STREET_1
CASE OUTFIT_HEIST_STREET_2
CASE OUTFIT_HEIST_STREET_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_POLICE
SWITCH eOutfit
CASE OUTFIT_HEIST_POLICE_0
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASUAL
SWITCH eOutfit
CASE OUTFIT_HEIST_CASUAL_0
CASE OUTFIT_HEIST_CASUAL_1
CASE OUTFIT_HEIST_CASUAL_2
CASE OUTFIT_HEIST_CASUAL_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_DRIVER
SWITCH eOutfit
CASE OUTFIT_HEIST_DRIVER_0
CASE OUTFIT_HEIST_DRIVER_1
CASE OUTFIT_HEIST_DRIVER_2
CASE OUTFIT_HEIST_DRIVER_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASUAL_STEALTH
SWITCH eOutfit
CASE OUTFIT_HEIST_CASUAL_STEALTH_0
CASE OUTFIT_HEIST_CASUAL_STEALTH_1
CASE OUTFIT_HEIST_CASUAL_STEALTH_2
CASE OUTFIT_HEIST_CASUAL_STEALTH_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASUAL_PILOT
SWITCH eOutfit
CASE OUTFIT_HEIST_CASUAL_PILOT_0
CASE OUTFIT_HEIST_CASUAL_PILOT_1
CASE OUTFIT_HEIST_CASUAL_PILOT_2
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_STREET_COMBAT
SWITCH eOutfit
CASE OUTFIT_HEIST_STREET_COMBAT_0
CASE OUTFIT_HEIST_STREET_COMBAT_1
CASE OUTFIT_HEIST_STREET_COMBAT_2
CASE OUTFIT_HEIST_STREET_COMBAT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_PRISONER
SWITCH eOutfit
CASE OUTFIT_HEIST_PRISONER_0
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_PRISON_OFFICER
SWITCH eOutfit
CASE OUTFIT_HEIST_PRISON_OFFICER_0
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_TACTICAL_STEALTH
SWITCH eOutfit
CASE OUTFIT_HEIST_TACTICAL_STEALTH_0
CASE OUTFIT_HEIST_TACTICAL_STEALTH_1
CASE OUTFIT_HEIST_TACTICAL_STEALTH_2
CASE OUTFIT_HEIST_TACTICAL_STEALTH_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_LIGHT_COMBAT
SWITCH eOutfit
CASE OUTFIT_HEIST_LIGHT_COMBAT_0
CASE OUTFIT_HEIST_LIGHT_COMBAT_1
CASE OUTFIT_HEIST_LIGHT_COMBAT_2
CASE OUTFIT_HEIST_LIGHT_COMBAT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_HEAVY_COMBAT
SWITCH eOutfit
CASE OUTFIT_HEIST_HEAVY_COMBAT_0
CASE OUTFIT_HEIST_HEAVY_COMBAT_1
CASE OUTFIT_HEIST_HEAVY_COMBAT_2
CASE OUTFIT_HEIST_HEAVY_COMBAT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_STEALTH_PILOT
SWITCH eOutfit
CASE OUTFIT_HEIST_STEALTH_PILOT_0
CASE OUTFIT_HEIST_STEALTH_PILOT_1
CASE OUTFIT_HEIST_STEALTH_PILOT_2
CASE OUTFIT_HEIST_STEALTH_PILOT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_REFUSE_COLLECTOR
SWITCH eOutfit
CASE OUTFIT_HEIST_REFUSE_COLLECTOR_0
CASE OUTFIT_HEIST_REFUSE_COLLECTOR_1
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_NIGHT_BIKER
SWITCH eOutfit
CASE OUTFIT_HEIST_NIGHT_BIKER_0
CASE OUTFIT_HEIST_NIGHT_BIKER_1
CASE OUTFIT_HEIST_NIGHT_BIKER_2
CASE OUTFIT_HEIST_NIGHT_BIKER_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_TOURIST
SWITCH eOutfit
CASE OUTFIT_HEIST_TOURIST_0
CASE OUTFIT_HEIST_TOURIST_1
CASE OUTFIT_HEIST_TOURIST_2
CASE OUTFIT_HEIST_TOURIST_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_SMART_SUITS
SWITCH eOutfit
CASE OUTFIT_HEIST_SMART_SUITS_0
CASE OUTFIT_HEIST_SMART_SUITS_1
CASE OUTFIT_HEIST_SMART_SUITS_2
CASE OUTFIT_HEIST_SMART_SUITS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_SLOPPY_SUITS
SWITCH eOutfit
CASE OUTFIT_HEIST_SLOPPY_SUITS_0
CASE OUTFIT_HEIST_SLOPPY_SUITS_1
CASE OUTFIT_HEIST_SLOPPY_SUITS_2
CASE OUTFIT_HEIST_SLOPPY_SUITS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_SHARP_SUITS
SWITCH eOutfit
CASE OUTFIT_HEIST_SHARP_SUITS_0
CASE OUTFIT_HEIST_SHARP_SUITS_1
CASE OUTFIT_HEIST_SHARP_SUITS_2
CASE OUTFIT_HEIST_SHARP_SUITS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MINIMAL_SUITS
SWITCH eOutfit
CASE OUTFIT_HEIST_MINIMALIST_SUITS_0
CASE OUTFIT_HEIST_MINIMALIST_SUITS_1
CASE OUTFIT_HEIST_MINIMALIST_SUITS_2
CASE OUTFIT_HEIST_MINIMALIST_SUITS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_TUXEDOS
SWITCH eOutfit
CASE OUTFIT_HEIST_TUXEDOS_0
CASE OUTFIT_HEIST_TUXEDOS_1
CASE OUTFIT_HEIST_TUXEDOS_2
CASE OUTFIT_HEIST_TUXEDOS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_HAZCHEM
SWITCH eOutfit
CASE OUTFIT_HEIST_HAZCHEM_0
CASE OUTFIT_HEIST_HAZCHEM_1
CASE OUTFIT_HEIST_HAZCHEM_2
CASE OUTFIT_HEIST_HAZCHEM_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_COVERALLS
SWITCH eOutfit
CASE OUTFIT_HEIST_COVERALLS_0
CASE OUTFIT_HEIST_COVERALLS_1
CASE OUTFIT_HEIST_COVERALLS_2
CASE OUTFIT_HEIST_COVERALLS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_FIGHTER_PILOT
SWITCH eOutfit
CASE OUTFIT_HEIST_FLIGHT_SUIT_0
CASE OUTFIT_HEIST_FLIGHT_SUIT_1
CASE OUTFIT_HEIST_FLIGHT_SUIT_2
CASE OUTFIT_HEIST_FLIGHT_SUIT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_LOWRIDER
SWITCH eOutfit
CASE OUTFIT_LOW_FLOW_LOWRIDER_0
CASE OUTFIT_LOW_FLOW_LOWRIDER_1
CASE OUTFIT_LOW_FLOW_LOWRIDER_2
CASE OUTFIT_LOW_FLOW_LOWRIDER_3
CASE OUTFIT_LOW_FLOW_LOWRIDER_4
CASE OUTFIT_LOW_FLOW_LOWRIDER_5
CASE OUTFIT_LOW_FLOW_LOWRIDER_6
CASE OUTFIT_LOW_FLOW_LOWRIDER_7
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_BALLAS
SWITCH eOutfit
CASE OUTFIT_LOW_FLOW_BALLAS_0
CASE OUTFIT_LOW_FLOW_BALLAS_1
CASE OUTFIT_LOW_FLOW_BALLAS_2
CASE OUTFIT_LOW_FLOW_BALLAS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_VAGOS
SWITCH eOutfit
CASE OUTFIT_LOW_FLOW_VAGOS_0
CASE OUTFIT_LOW_FLOW_VAGOS_1
CASE OUTFIT_LOW_FLOW_VAGOS_2
CASE OUTFIT_LOW_FLOW_VAGOS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_FUNERAL
SWITCH eOutfit
CASE OUTFIT_LOW_FLOW_FUNERAL_0
CASE OUTFIT_LOW_FLOW_FUNERAL_1
CASE OUTFIT_LOW_FLOW_FUNERAL_2
CASE OUTFIT_LOW_FLOW_FUNERAL_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_SCUBA
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_SCUBA
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_PARAMEDIC
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_0
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_1
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_0
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_1
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MEDTECH1
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_0
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_1
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_2
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MEDTECH2
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_0
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_1
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_2
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MODERN_STEALTH
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_0
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_1
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_2
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASUAL_PILOT_2
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_0
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_1
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_2
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_FIGHTER_PILOT_2
SWITCH eOutfit
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_0
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_1
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_2
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_HIGH_TECH_RIOT
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_0
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_1
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_2
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_HIGH_TECH_IMPACT
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_0
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_1
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_2
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MED_TECH_MASKED
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_0
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_1
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_2
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MED_TECH_REBELLION
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_0
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_1
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_2
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MED_TECH_HAVOC
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_0
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_1
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_2
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MED_TECH_ADAPTABLE
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_0
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_1
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_2
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_SUB_DRIVER
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_0
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_1
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_2
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_HEAVY_COMBAT_GEAR
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_0
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_1
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_2
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_LOW_TECH_TACTICAL
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_0
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_1
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_2
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_LOW_TECH_COMBAT
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_0
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_1
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_2
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CLASSIC_STEALTH
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_0
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_1
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_2
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_MILITARY_CAMO
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_0
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_1
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_2
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_GORKA
SWITCH eOUTFIT
CASE OUTFIT_GANGOPS_HEIST_GORKA_0
CASE OUTFIT_GANGOPS_HEIST_GORKA_1
CASE OUTFIT_GANGOPS_HEIST_GORKA_2
CASE OUTFIT_GANGOPS_HEIST_GORKA_3
RETURN TRUE
ENDSWITCH
BREAK
#IF FEATURE_CASINO_HEIST
CASE OUTFIT_STYLE_CASINO_HEIST_STEALTH_I
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_STEALTH_I_0
CASE OUTFIT_CASINO_HEIST_STEALTH_I_1
CASE OUTFIT_CASINO_HEIST_STEALTH_I_2
CASE OUTFIT_CASINO_HEIST_STEALTH_I_3
CASE OUTFIT_CASINO_HEIST_STEALTH_I_4
CASE OUTFIT_CASINO_HEIST_STEALTH_I_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_STEALTH_II
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_STEALTH_II_0
CASE OUTFIT_CASINO_HEIST_STEALTH_II_1
CASE OUTFIT_CASINO_HEIST_STEALTH_II_2
CASE OUTFIT_CASINO_HEIST_STEALTH_II_3
CASE OUTFIT_CASINO_HEIST_STEALTH_II_4
CASE OUTFIT_CASINO_HEIST_STEALTH_II_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_STEALTH_III
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_STEALTH_III_0
CASE OUTFIT_CASINO_HEIST_STEALTH_III_1
CASE OUTFIT_CASINO_HEIST_STEALTH_III_2
CASE OUTFIT_CASINO_HEIST_STEALTH_III_3
CASE OUTFIT_CASINO_HEIST_STEALTH_III_4
CASE OUTFIT_CASINO_HEIST_STEALTH_III_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_I
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_0
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_1
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_2
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_3
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_4
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_II
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_0
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_1
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_2
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_3
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_4
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_III
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_0
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_1
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_2
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_3
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_4
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_BUGSTAR
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_BUGSTARS_0
CASE OUTFIT_CASINO_HEIST_BUGSTARS_1
CASE OUTFIT_CASINO_HEIST_BUGSTARS_2
CASE OUTFIT_CASINO_HEIST_BUGSTARS_3
CASE OUTFIT_CASINO_HEIST_BUGSTARS_4
CASE OUTFIT_CASINO_HEIST_BUGSTARS_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_MAINTENANCE
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_0
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_1
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_2
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_3
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_4
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_GRUPPESECHS
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_0
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_1
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_2
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_3
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_4
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_CELEB
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_CELEB_0
CASE OUTFIT_CASINO_HEIST_CELEB_1
CASE OUTFIT_CASINO_HEIST_CELEB_2
CASE OUTFIT_CASINO_HEIST_CELEB_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_I
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_0
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_1
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_2
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_3
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_4
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_II
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_0
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_1
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_2
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_3
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_4
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_III
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_0
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_1
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_2
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_3
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_4
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_I
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_0
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_1
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_2
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_3
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_4
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_II
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_0
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_1
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_2
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_3
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_4
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_5
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_III
SWITCH eOUTFIT
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_0
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_1
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_2
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_3
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_4
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_5
RETURN TRUE
ENDSWITCH
BREAK
#ENDIF
ENDSWITCH
SWITCH eStyle
CASE OUTFIT_STYLE_ISLAND_HEIST_SMUGGLER
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_0
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_1
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_2
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_ISLAND_HEIST_HEAVY_I
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_0
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_1
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_2
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_ISLAND_HEIST_HEAVY_II
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_0
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_1
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_2
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_ISLAND_HEIST_LIGHT_I
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_0
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_1
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_2
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_ISLAND_HEIST_LIGHT_II
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_0
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_1
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_2
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_ISLAND_HEIST_STEALTH_I
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_0
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_1
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_2
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_ISLAND_HEIST_STEALTH_II
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_0
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_1
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_2
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_FIXER_PARTY_PROMOTER
SWITCH eOutfit
CASE OUTFIT_FIXER_PARTY_PROMOTER_0
CASE OUTFIT_FIXER_PARTY_PROMOTER_1
CASE OUTFIT_FIXER_PARTY_PROMOTER_2
CASE OUTFIT_FIXER_PARTY_PROMOTER_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_FIXER_BILLIONAIRE_GAMES
SWITCH eOutfit
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_0
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_1
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_2
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_3
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_FIXER_GOLF
SWITCH eOutfit
CASE OUTFIT_FIXER_GOLF_0
CASE OUTFIT_FIXER_GOLF_1
CASE OUTFIT_FIXER_GOLF_2
CASE OUTFIT_FIXER_GOLF_3
CASE OUTFIT_FIXER_GOLF_4
CASE OUTFIT_FIXER_GOLF_5
CASE OUTFIT_FIXER_GOLF_6
CASE OUTFIT_FIXER_GOLF_7
RETURN TRUE
ENDSWITCH
BREAK
CASE OUTFIT_STYLE_SUM22_IAA_AGENTS
SWITCH eOutfit
CASE OUTFIT_SUM22_IAA_AGENT_0
CASE OUTFIT_SUM22_IAA_AGENT_1
CASE OUTFIT_SUM22_IAA_AGENT_2
CASE OUTFIT_SUM22_IAA_AGENT_3
RETURN TRUE
ENDSWITCH
BREAK
ENDSWITCH
// Otherwise, the outfit isn't in that style.
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Get the style suber set that the passed in outfit belongs to.
/// RETURNS:
/// Outfit style set MP_HEIST_OUTFIT_ENUM (e.g. OUTFIT_HEIST_STREET_0)
FUNC HEIST_OUTFIT_SYTLE GET_STYLE_FROM_OUTFIT(INT iOutfit)
MP_OUTFIT_ENUM eOutfit = INT_TO_ENUM(MP_OUTFIT_ENUM, iOutfit)
SWITCH eOutfit
CASE OUTFIT_HEIST_STREET_0
CASE OUTFIT_HEIST_STREET_1
CASE OUTFIT_HEIST_STREET_2
CASE OUTFIT_HEIST_STREET_3
RETURN OUTFIT_STYLE_STREET
CASE OUTFIT_HEIST_POLICE_0
RETURN OUTFIT_STYLE_POLICE
CASE OUTFIT_HEIST_CASUAL_0
CASE OUTFIT_HEIST_CASUAL_1
CASE OUTFIT_HEIST_CASUAL_2
CASE OUTFIT_HEIST_CASUAL_3
RETURN OUTFIT_STYLE_CASUAL
CASE OUTFIT_HEIST_DRIVER_0
CASE OUTFIT_HEIST_DRIVER_1
CASE OUTFIT_HEIST_DRIVER_2
CASE OUTFIT_HEIST_DRIVER_3
RETURN OUTFIT_STYLE_DRIVER
CASE OUTFIT_HEIST_CASUAL_STEALTH_0
CASE OUTFIT_HEIST_CASUAL_STEALTH_1
CASE OUTFIT_HEIST_CASUAL_STEALTH_2
CASE OUTFIT_HEIST_CASUAL_STEALTH_3
RETURN OUTFIT_STYLE_CASUAL_STEALTH
CASE OUTFIT_HEIST_CASUAL_PILOT_0
CASE OUTFIT_HEIST_CASUAL_PILOT_1
CASE OUTFIT_HEIST_CASUAL_PILOT_2
RETURN OUTFIT_STYLE_CASUAL_PILOT
CASE OUTFIT_HEIST_STREET_COMBAT_0
CASE OUTFIT_HEIST_STREET_COMBAT_1
CASE OUTFIT_HEIST_STREET_COMBAT_2
CASE OUTFIT_HEIST_STREET_COMBAT_3
RETURN OUTFIT_STYLE_STREET_COMBAT
CASE OUTFIT_HEIST_PRISONER_0
RETURN OUTFIT_STYLE_PRISONER
CASE OUTFIT_HEIST_PRISON_OFFICER_0
RETURN OUTFIT_STYLE_PRISON_OFFICER
CASE OUTFIT_HEIST_TACTICAL_STEALTH_0
CASE OUTFIT_HEIST_TACTICAL_STEALTH_1
CASE OUTFIT_HEIST_TACTICAL_STEALTH_2
CASE OUTFIT_HEIST_TACTICAL_STEALTH_3
RETURN OUTFIT_STYLE_TACTICAL_STEALTH
CASE OUTFIT_HEIST_LIGHT_COMBAT_0
CASE OUTFIT_HEIST_LIGHT_COMBAT_1
CASE OUTFIT_HEIST_LIGHT_COMBAT_2
CASE OUTFIT_HEIST_LIGHT_COMBAT_3
RETURN OUTFIT_STYLE_LIGHT_COMBAT
CASE OUTFIT_HEIST_HEAVY_COMBAT_0
CASE OUTFIT_HEIST_HEAVY_COMBAT_1
CASE OUTFIT_HEIST_HEAVY_COMBAT_2
CASE OUTFIT_HEIST_HEAVY_COMBAT_3
RETURN OUTFIT_STYLE_HEAVY_COMBAT
CASE OUTFIT_HEIST_STEALTH_PILOT_0
CASE OUTFIT_HEIST_STEALTH_PILOT_1
CASE OUTFIT_HEIST_STEALTH_PILOT_2
CASE OUTFIT_HEIST_STEALTH_PILOT_3
RETURN OUTFIT_STYLE_STEALTH_PILOT
CASE OUTFIT_HEIST_REFUSE_COLLECTOR_0
CASE OUTFIT_HEIST_REFUSE_COLLECTOR_1
RETURN OUTFIT_STYLE_REFUSE_COLLECTOR
CASE OUTFIT_HEIST_NIGHT_BIKER_0
CASE OUTFIT_HEIST_NIGHT_BIKER_1
CASE OUTFIT_HEIST_NIGHT_BIKER_2
CASE OUTFIT_HEIST_NIGHT_BIKER_3
RETURN OUTFIT_STYLE_NIGHT_BIKER
CASE OUTFIT_HEIST_TOURIST_0
CASE OUTFIT_HEIST_TOURIST_1
CASE OUTFIT_HEIST_TOURIST_2
CASE OUTFIT_HEIST_TOURIST_3
RETURN OUTFIT_STYLE_TOURIST
CASE OUTFIT_HEIST_SMART_SUITS_0
CASE OUTFIT_HEIST_SMART_SUITS_1
CASE OUTFIT_HEIST_SMART_SUITS_2
CASE OUTFIT_HEIST_SMART_SUITS_3
RETURN OUTFIT_STYLE_SMART_SUITS
CASE OUTFIT_HEIST_SLOPPY_SUITS_0
CASE OUTFIT_HEIST_SLOPPY_SUITS_1
CASE OUTFIT_HEIST_SLOPPY_SUITS_2
CASE OUTFIT_HEIST_SLOPPY_SUITS_3
RETURN OUTFIT_STYLE_SLOPPY_SUITS
CASE OUTFIT_HEIST_SHARP_SUITS_0
CASE OUTFIT_HEIST_SHARP_SUITS_1
CASE OUTFIT_HEIST_SHARP_SUITS_2
CASE OUTFIT_HEIST_SHARP_SUITS_3
RETURN OUTFIT_STYLE_SHARP_SUITS
CASE OUTFIT_HEIST_MINIMALIST_SUITS_0
CASE OUTFIT_HEIST_MINIMALIST_SUITS_1
CASE OUTFIT_HEIST_MINIMALIST_SUITS_2
CASE OUTFIT_HEIST_MINIMALIST_SUITS_3
RETURN OUTFIT_STYLE_MINIMAL_SUITS
CASE OUTFIT_HEIST_TUXEDOS_0
CASE OUTFIT_HEIST_TUXEDOS_1
CASE OUTFIT_HEIST_TUXEDOS_2
CASE OUTFIT_HEIST_TUXEDOS_3
RETURN OUTFIT_STYLE_TUXEDOS
CASE OUTFIT_HEIST_HAZCHEM_0
CASE OUTFIT_HEIST_HAZCHEM_1
CASE OUTFIT_HEIST_HAZCHEM_2
CASE OUTFIT_HEIST_HAZCHEM_3
RETURN OUTFIT_STYLE_HAZCHEM
CASE OUTFIT_HEIST_COVERALLS_0
CASE OUTFIT_HEIST_COVERALLS_1
CASE OUTFIT_HEIST_COVERALLS_2
CASE OUTFIT_HEIST_COVERALLS_3
RETURN OUTFIT_STYLE_COVERALLS
CASE OUTFIT_HEIST_FLIGHT_SUIT_0
CASE OUTFIT_HEIST_FLIGHT_SUIT_1
CASE OUTFIT_HEIST_FLIGHT_SUIT_2
CASE OUTFIT_HEIST_FLIGHT_SUIT_3
RETURN OUTFIT_STYLE_FIGHTER_PILOT
CASE OUTFIT_LOW_FLOW_LOWRIDER_0
CASE OUTFIT_LOW_FLOW_LOWRIDER_1
CASE OUTFIT_LOW_FLOW_LOWRIDER_2
CASE OUTFIT_LOW_FLOW_LOWRIDER_3
CASE OUTFIT_LOW_FLOW_LOWRIDER_4
CASE OUTFIT_LOW_FLOW_LOWRIDER_5
CASE OUTFIT_LOW_FLOW_LOWRIDER_6
CASE OUTFIT_LOW_FLOW_LOWRIDER_7
RETURN OUTFIT_STYLE_LOWRIDER
CASE OUTFIT_LOW_FLOW_VAGOS_0
CASE OUTFIT_LOW_FLOW_VAGOS_1
CASE OUTFIT_LOW_FLOW_VAGOS_2
CASE OUTFIT_LOW_FLOW_VAGOS_3
RETURN OUTFIT_STYLE_VAGOS
CASE OUTFIT_LOW_FLOW_BALLAS_0
CASE OUTFIT_LOW_FLOW_BALLAS_1
CASE OUTFIT_LOW_FLOW_BALLAS_2
CASE OUTFIT_LOW_FLOW_BALLAS_3
RETURN OUTFIT_STYLE_BALLAS
CASE OUTFIT_LOW_FLOW_FUNERAL_0
CASE OUTFIT_LOW_FLOW_FUNERAL_1
CASE OUTFIT_LOW_FLOW_FUNERAL_2
CASE OUTFIT_LOW_FLOW_FUNERAL_3
RETURN OUTFIT_STYLE_FUNERAL
CASE OUTFIT_GANGOPS_HEIST_SCUBA
RETURN OUTFIT_STYLE_SCUBA
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_0
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_BLUE_1
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_0
CASE OUTFIT_GANGOPS_HEIST_PARAMEDIC_GREEN_1
RETURN OUTFIT_STYLE_PARAMEDIC
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_0
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_1
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_2
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT1_3
RETURN OUTFIT_STYLE_MEDTECH1
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_0
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_1
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_2
CASE OUTFIT_GANGOPS_HEIST_MEDTECH_COMBAT2_3
RETURN OUTFIT_STYLE_MEDTECH2
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_0
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_1
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_2
CASE OUTFIT_GANGOPS_HEIST_MODERN_STEALTH_3
RETURN OUTFIT_STYLE_MODERN_STEALTH
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_0
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_1
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_2
CASE OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_3
RETURN OUTFIT_STYLE_CASUAL_PILOT_2
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_0
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_1
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_2
CASE OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_3
RETURN OUTFIT_STYLE_FIGHTER_PILOT_2
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_0
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_1
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_2
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_RIOT_3
RETURN OUTFIT_STYLE_HIGH_TECH_RIOT
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_0
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_1
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_2
CASE OUTFIT_GANGOPS_HEIST_HIGH_TECH_IMPACT_3
RETURN OUTFIT_STYLE_HIGH_TECH_IMPACT
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_0
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_1
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_2
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_MASKED_3
RETURN OUTFIT_STYLE_MED_TECH_MASKED
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_0
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_1
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_2
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_REBELLION_3
RETURN OUTFIT_STYLE_MED_TECH_REBELLION
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_0
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_1
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_2
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_HAVOC_3
RETURN OUTFIT_STYLE_MED_TECH_HAVOC
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_0
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_1
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_2
CASE OUTFIT_GANGOPS_HEIST_MED_TECH_ADAPTABLE_3
RETURN OUTFIT_STYLE_MED_TECH_ADAPTABLE
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_0
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_1
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_2
CASE OUTFIT_GANGOPS_HEIST_SUB_DRIVER_3
RETURN OUTFIT_STYLE_SUB_DRIVER
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_0
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_1
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_2
CASE OUTFIT_GANGOPS_HEIST_HEAVY_COMBAT_GEAR_3
RETURN OUTFIT_STYLE_HEAVY_COMBAT_GEAR
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_0
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_1
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_2
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_TACTICAL_3
RETURN OUTFIT_STYLE_LOW_TECH_TACTICAL
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_0
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_1
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_2
CASE OUTFIT_GANGOPS_HEIST_LOW_TECH_COMBAT_3
RETURN OUTFIT_STYLE_LOW_TECH_COMBAT
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_0
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_1
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_2
CASE OUTFIT_GANGOPS_HEIST_CLASSIC_STEALTH_GEAR_3
RETURN OUTFIT_STYLE_CLASSIC_STEALTH
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_0
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_1
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_2
CASE OUTFIT_GANGOPS_HEIST_MILITARY_CAMO_GEAR_3
RETURN OUTFIT_STYLE_MILITARY_CAMO
CASE OUTFIT_GANGOPS_HEIST_GORKA_0
CASE OUTFIT_GANGOPS_HEIST_GORKA_1
CASE OUTFIT_GANGOPS_HEIST_GORKA_2
CASE OUTFIT_GANGOPS_HEIST_GORKA_3
RETURN OUTFIT_STYLE_GORKA
ENDSWITCH
#IF FEATURE_CASINO_HEIST
SWITCH eOutfit
CASE OUTFIT_CASINO_HEIST_STEALTH_I_0
CASE OUTFIT_CASINO_HEIST_STEALTH_I_1
CASE OUTFIT_CASINO_HEIST_STEALTH_I_2
CASE OUTFIT_CASINO_HEIST_STEALTH_I_3
CASE OUTFIT_CASINO_HEIST_STEALTH_I_4
CASE OUTFIT_CASINO_HEIST_STEALTH_I_5
RETURN OUTFIT_STYLE_CASINO_HEIST_STEALTH_I
CASE OUTFIT_CASINO_HEIST_STEALTH_II_0
CASE OUTFIT_CASINO_HEIST_STEALTH_II_1
CASE OUTFIT_CASINO_HEIST_STEALTH_II_2
CASE OUTFIT_CASINO_HEIST_STEALTH_II_3
CASE OUTFIT_CASINO_HEIST_STEALTH_II_4
CASE OUTFIT_CASINO_HEIST_STEALTH_II_5
RETURN OUTFIT_STYLE_CASINO_HEIST_STEALTH_II
CASE OUTFIT_CASINO_HEIST_STEALTH_III_0
CASE OUTFIT_CASINO_HEIST_STEALTH_III_1
CASE OUTFIT_CASINO_HEIST_STEALTH_III_2
CASE OUTFIT_CASINO_HEIST_STEALTH_III_3
CASE OUTFIT_CASINO_HEIST_STEALTH_III_4
CASE OUTFIT_CASINO_HEIST_STEALTH_III_5
RETURN OUTFIT_STYLE_CASINO_HEIST_STEALTH_III
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_0
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_1
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_2
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_3
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_4
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_I_5
RETURN OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_I
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_0
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_1
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_2
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_3
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_4
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_II_5
RETURN OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_II
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_0
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_1
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_2
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_3
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_4
CASE OUTFIT_CASINO_HEIST_COVERT_STEALTH_III_5
RETURN OUTFIT_STYLE_CASINO_HEIST_COVERT_STEALTH_III
CASE OUTFIT_CASINO_HEIST_BUGSTARS_0
CASE OUTFIT_CASINO_HEIST_BUGSTARS_1
CASE OUTFIT_CASINO_HEIST_BUGSTARS_2
CASE OUTFIT_CASINO_HEIST_BUGSTARS_3
CASE OUTFIT_CASINO_HEIST_BUGSTARS_4
CASE OUTFIT_CASINO_HEIST_BUGSTARS_5
RETURN OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_BUGSTAR
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_0
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_1
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_2
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_3
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_4
CASE OUTFIT_CASINO_HEIST_MAINTENANCE_5
RETURN OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_MAINTENANCE
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_0
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_1
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_2
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_3
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_4
CASE OUTFIT_CASINO_HEIST_GRUPPE_SECHS_5
RETURN OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_GRUPPESECHS
CASE OUTFIT_CASINO_HEIST_CELEB_0
CASE OUTFIT_CASINO_HEIST_CELEB_1
CASE OUTFIT_CASINO_HEIST_CELEB_2
CASE OUTFIT_CASINO_HEIST_CELEB_3
RETURN OUTFIT_STYLE_CASINO_HEIST_SUBTERFUGE_CELEB
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_0
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_1
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_2
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_3
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_4
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_I_5
RETURN OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_I
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_0
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_1
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_2
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_3
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_4
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_II_5
RETURN OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_II
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_0
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_1
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_2
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_3
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_4
CASE OUTFIT_CASINO_HEIST_DIRECT_LIGHT_III_5
RETURN OUTFIT_STYLE_CASINO_HEIST_DIRECT_LIGHT_III
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_0
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_1
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_2
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_3
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_4
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_I_5
RETURN OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_I
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_0
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_1
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_2
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_3
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_4
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_II_5
RETURN OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_II
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_0
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_1
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_2
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_3
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_4
CASE OUTFIT_CASINO_HEIST_DIRECT_HEAVY_III_5
RETURN OUTFIT_STYLE_CASINO_HEIST_DIRECT_HEAVY_III
ENDSWITCH
#ENDIF
SWITCH eOutfit
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_0
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_1
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_2
CASE OUTFIT_ISLAND_HEIST_SMUGGLER_3
RETURN OUTFIT_STYLE_ISLAND_HEIST_SMUGGLER
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_0
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_1
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_2
CASE OUTFIT_ISLAND_HEIST_HEAVY_1_3
RETURN OUTFIT_STYLE_ISLAND_HEIST_HEAVY_I
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_0
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_1
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_2
CASE OUTFIT_ISLAND_HEIST_HEAVY_2_3
RETURN OUTFIT_STYLE_ISLAND_HEIST_HEAVY_II
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_0
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_1
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_2
CASE OUTFIT_ISLAND_HEIST_LIGHT_1_3
RETURN OUTFIT_STYLE_ISLAND_HEIST_LIGHT_I
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_0
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_1
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_2
CASE OUTFIT_ISLAND_HEIST_LIGHT_2_3
RETURN OUTFIT_STYLE_ISLAND_HEIST_LIGHT_II
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_0
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_1
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_2
CASE OUTFIT_ISLAND_HEIST_STEALTH_1_3
RETURN OUTFIT_STYLE_ISLAND_HEIST_STEALTH_I
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_0
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_1
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_2
CASE OUTFIT_ISLAND_HEIST_STEALTH_2_3
RETURN OUTFIT_STYLE_ISLAND_HEIST_STEALTH_II
CASE OUTFIT_FIXER_PARTY_PROMOTER_0
CASE OUTFIT_FIXER_PARTY_PROMOTER_1
CASE OUTFIT_FIXER_PARTY_PROMOTER_2
CASE OUTFIT_FIXER_PARTY_PROMOTER_3
RETURN OUTFIT_STYLE_FIXER_PARTY_PROMOTER
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_0
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_1
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_2
CASE OUTFIT_FIXER_BILLIONAIRE_GAMES_3
RETURN OUTFIT_STYLE_FIXER_BILLIONAIRE_GAMES
CASE OUTFIT_FIXER_GOLF_0
CASE OUTFIT_FIXER_GOLF_1
CASE OUTFIT_FIXER_GOLF_2
CASE OUTFIT_FIXER_GOLF_3
CASE OUTFIT_FIXER_GOLF_4
CASE OUTFIT_FIXER_GOLF_5
CASE OUTFIT_FIXER_GOLF_6
CASE OUTFIT_FIXER_GOLF_7
RETURN OUTFIT_STYLE_FIXER_GOLF
CASE OUTFIT_SUM22_IAA_AGENT_0
CASE OUTFIT_SUM22_IAA_AGENT_1
CASE OUTFIT_SUM22_IAA_AGENT_2
CASE OUTFIT_SUM22_IAA_AGENT_3
RETURN OUTFIT_STYLE_SUM22_IAA_AGENTS
ENDSWITCH
// Error case, outfit doesn't have a valid style.
RETURN OUTFIT_STYLE_NONE
ENDFUNC
FUNC BOOL IS_MP_HEIST_MASK_IN_STYLE(INT iMask, INT iStyle)
HEIST_MASK eStyle = INT_TO_ENUM(HEIST_MASK, iStyle)
MP_OUTFIT_MASK_ENUM eMask = INT_TO_ENUM(MP_OUTFIT_MASK_ENUM, iMask)
SWITCH eStyle
CASE MASK_AMATEUR
SWITCH eMask
CASE OUTFIT_MASK_AMATEUR_0
CASE OUTFIT_MASK_AMATEUR_1
CASE OUTFIT_MASK_AMATEUR_2
CASE OUTFIT_MASK_AMATEUR_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ANIMALS
SWITCH eMask
CASE OUTFIT_MASK_ANIMALS_0
CASE OUTFIT_MASK_ANIMALS_1
CASE OUTFIT_MASK_ANIMALS_2
CASE OUTFIT_MASK_ANIMALS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_PAPER_BAGS
SWITCH eMask
CASE OUTFIT_MASK_PAPER_BAGS_0
CASE OUTFIT_MASK_PAPER_BAGS_1
CASE OUTFIT_MASK_PAPER_BAGS_2
CASE OUTFIT_MASK_PAPER_BAGS_3
CASE OUTFIT_MASK_PAPER_BAGS_4
CASE OUTFIT_MASK_PAPER_BAGS_5
CASE OUTFIT_MASK_PAPER_BAGS_6
CASE OUTFIT_MASK_PAPER_BAGS_7
CASE OUTFIT_MASK_PAPER_BAGS_8
CASE OUTFIT_MASK_PAPER_BAGS_9
CASE OUTFIT_MASK_PAPER_BAGS_10
CASE OUTFIT_MASK_PAPER_BAGS_11
CASE OUTFIT_MASK_PAPER_BAGS_12
CASE OUTFIT_MASK_PAPER_BAGS_13
CASE OUTFIT_MASK_PAPER_BAGS_14
CASE OUTFIT_MASK_PAPER_BAGS_15
CASE OUTFIT_MASK_PAPER_BAGS_16
CASE OUTFIT_MASK_PAPER_BAGS_17
CASE OUTFIT_MASK_PAPER_BAGS_18
CASE OUTFIT_MASK_PAPER_BAGS_19
CASE OUTFIT_MASK_PAPER_BAGS_20
CASE OUTFIT_MASK_PAPER_BAGS_21
CASE OUTFIT_MASK_PAPER_BAGS_22
CASE OUTFIT_MASK_PAPER_BAGS_23
CASE OUTFIT_MASK_PAPER_BAGS_24
CASE OUTFIT_MASK_PAPER_BAGS_25
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_BEASTS
SWITCH eMask
CASE OUTFIT_MASK_BEASTS_0
CASE OUTFIT_MASK_BEASTS_1
CASE OUTFIT_MASK_BEASTS_2
CASE OUTFIT_MASK_BEASTS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CHARACTERS
SWITCH eMask
CASE OUTFIT_MASK_CHARACTERS_0
CASE OUTFIT_MASK_CHARACTERS_1
CASE OUTFIT_MASK_CHARACTERS_2
CASE OUTFIT_MASK_CHARACTERS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CLASSIC_MONSTERS
SWITCH eMask
CASE OUTFIT_MASK_CLASSIC_MONSTERS_0
CASE OUTFIT_MASK_CLASSIC_MONSTERS_1
CASE OUTFIT_MASK_CLASSIC_MONSTERS_2
CASE OUTFIT_MASK_CLASSIC_MONSTERS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CARNIVAL
SWITCH eMask
CASE OUTFIT_MASK_CARNIVAL_0
CASE OUTFIT_MASK_CARNIVAL_1
CASE OUTFIT_MASK_CARNIVAL_2
CASE OUTFIT_MASK_CARNIVAL_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_GAS_MASKS
SWITCH eMask
CASE OUTFIT_MASK_GAS_MASKS_0
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_HELMETS
SWITCH eMask
CASE OUTFIT_MASK_HELMETS_0
CASE OUTFIT_MASK_HELMETS_1
CASE OUTFIT_MASK_HELMETS_2
CASE OUTFIT_MASK_HELMETS_3
CASE OUTFIT_MASK_HELMETS_4
CASE OUTFIT_MASK_HELMETS_5
CASE OUTFIT_MASK_HELMETS_6
CASE OUTFIT_MASK_HELMETS_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_HORROR_HOCKEY
SWITCH eMask
CASE OUTFIT_MASK_HORROR_HOCKEY_0
CASE OUTFIT_MASK_HORROR_HOCKEY_1
CASE OUTFIT_MASK_HORROR_HOCKEY_2
CASE OUTFIT_MASK_HORROR_HOCKEY_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_PUPPETS
SWITCH eMask
CASE OUTFIT_MASK_PUPPETS_0
CASE OUTFIT_MASK_PUPPETS_1
CASE OUTFIT_MASK_PUPPETS_2
CASE OUTFIT_MASK_PUPPETS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_SKULLS
SWITCH eMask
CASE OUTFIT_MASK_SKULLS_0
CASE OUTFIT_MASK_SKULLS_1
CASE OUTFIT_MASK_SKULLS_2
CASE OUTFIT_MASK_SKULLS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_TACTICAL
SWITCH eMask
CASE OUTFIT_MASK_TACTICAL_0
CASE OUTFIT_MASK_TACTICAL_1
CASE OUTFIT_MASK_TACTICAL_2
CASE OUTFIT_MASK_TACTICAL_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_TAPES
SWITCH eMask
CASE OUTFIT_MASK_TAPE_0
CASE OUTFIT_MASK_TAPE_1
CASE OUTFIT_MASK_TAPE_2
CASE OUTFIT_MASK_TAPE_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_THEATRICAL
SWITCH eMask
CASE OUTFIT_MASK_THEATRICAL_0
CASE OUTFIT_MASK_THEATRICAL_1
CASE OUTFIT_MASK_THEATRICAL_2
CASE OUTFIT_MASK_THEATRICAL_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_PIGS
SWITCH eMask
CASE OUTFIT_MASK_PIGS_0
CASE OUTFIT_MASK_PIGS_1
CASE OUTFIT_MASK_PIGS_2
CASE OUTFIT_MASK_PIGS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_DUCT_TAPE
SWITCH eMask
CASE OUTFIT_MASK_DUCT_TAPE_0
CASE OUTFIT_MASK_DUCT_TAPE_1
CASE OUTFIT_MASK_DUCT_TAPE_2
CASE OUTFIT_MASK_DUCT_TAPE_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_INCOGNITO
SWITCH eMask
CASE OUTFIT_MASK_INCOGNITO_0
CASE OUTFIT_MASK_INCOGNITO_1
CASE OUTFIT_MASK_INCOGNITO_2
CASE OUTFIT_MASK_INCOGNITO_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_BALACLAVAS
SWITCH eMask
CASE OUTFIT_MASK_BALACLAVAS_0
CASE OUTFIT_MASK_BALACLAVAS_1
CASE OUTFIT_MASK_BALACLAVAS_2
CASE OUTFIT_MASK_BALACLAVAS_3
CASE OUTFIT_MASK_BALACLAVAS_4
CASE OUTFIT_MASK_BALACLAVAS_5
CASE OUTFIT_MASK_BALACLAVAS_6
CASE OUTFIT_MASK_BALACLAVAS_7
CASE OUTFIT_MASK_BALACLAVAS_8
CASE OUTFIT_MASK_BALACLAVAS_9
CASE OUTFIT_MASK_BALACLAVAS_10
CASE OUTFIT_MASK_BALACLAVAS_11
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CAMO
SWITCH eMask
CASE OUTFIT_MASK_CAMO_0
CASE OUTFIT_MASK_CAMO_1
CASE OUTFIT_MASK_CAMO_2
CASE OUTFIT_MASK_CAMO_3
CASE OUTFIT_MASK_CAMO_4
CASE OUTFIT_MASK_CAMO_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_PSYCHOTIC
SWITCH eMask
CASE OUTFIT_MASK_PSYCHOTIC_0
CASE OUTFIT_MASK_PSYCHOTIC_1
CASE OUTFIT_MASK_PSYCHOTIC_2
CASE OUTFIT_MASK_PSYCHOTIC_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_STREET
SWITCH eMask
CASE OUTFIT_MASK_STREET_0
CASE OUTFIT_MASK_STREET_1
CASE OUTFIT_MASK_STREET_2
CASE OUTFIT_MASK_STREET_3
CASE OUTFIT_MASK_STREET_4
CASE OUTFIT_MASK_STREET_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_BANDANAS
SWITCH eMask
CASE OUTFIT_MASK_BANDANAS_0
CASE OUTFIT_MASK_BANDANAS_1
CASE OUTFIT_MASK_BANDANAS_2
CASE OUTFIT_MASK_BANDANAS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_HOODS
SWITCH eMask
CASE OUTFIT_MASK_HOODS_0
CASE OUTFIT_MASK_HOODS_1
CASE OUTFIT_MASK_HOODS_2
CASE OUTFIT_MASK_HOODS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_DESIGNER
SWITCH eMask
CASE OUTFIT_MASK_DESIGNER_0
CASE OUTFIT_MASK_DESIGNER_1
CASE OUTFIT_MASK_DESIGNER_2
CASE OUTFIT_MASK_DESIGNER_3
CASE OUTFIT_MASK_DESIGNER_4
CASE OUTFIT_MASK_DESIGNER_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_DEVILISH
SWITCH eMask
CASE MASK_HEIST_HALLOWEEN_DEVILISH_0
CASE MASK_HEIST_HALLOWEEN_DEVILISH_1
CASE MASK_HEIST_HALLOWEEN_DEVILISH_2
CASE MASK_HEIST_HALLOWEEN_DEVILISH_3
CASE MASK_HEIST_HALLOWEEN_DEVILISH_4
CASE MASK_HEIST_HALLOWEEN_DEVILISH_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_SADISTIC
SWITCH eMask
CASE MASK_HEIST_HALLOWEEN_SADISTIC_0
CASE MASK_HEIST_HALLOWEEN_SADISTIC_1
CASE MASK_HEIST_HALLOWEEN_SADISTIC_2
CASE MASK_HEIST_HALLOWEEN_SADISTIC_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_POSSESSED
SWITCH eMask
CASE MASK_HEIST_HALLOWEEN_POSSESSED_0
CASE MASK_HEIST_HALLOWEEN_POSSESSED_1
CASE MASK_HEIST_HALLOWEEN_POSSESSED_2
CASE MASK_HEIST_HALLOWEEN_POSSESSED_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_FIENDS
SWITCH eMask
CASE MASK_HEIST_HALLOWEEN_FIENDS_0
CASE MASK_HEIST_HALLOWEEN_FIENDS_1
CASE MASK_HEIST_HALLOWEEN_FIENDS_2
CASE MASK_HEIST_HALLOWEEN_FIENDS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CREATURES
SWITCH eMask
CASE MASK_HEIST_HALLOWEEN_CREATURES_0
CASE MASK_HEIST_HALLOWEEN_CREATURES_1
CASE MASK_HEIST_HALLOWEEN_CREATURES_2
CASE MASK_HEIST_HALLOWEEN_CREATURES_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_WICKED
SWITCH eMask
CASE MASK_HEIST_HALLOWEEN_WICKED_0
CASE MASK_HEIST_HALLOWEEN_WICKED_1
CASE MASK_HEIST_HALLOWEEN_WICKED_2
CASE MASK_HEIST_HALLOWEEN_WICKED_3
RETURN TRUE
ENDSWITCH
BREAK
#IF FEATURE_CASINO_HEIST
CASE MASK_CASINO_HEIST_DEFAULT
SWITCH eMask
CASE MASK_CASINO_HEIST_DEFAULT_0
CASE MASK_CASINO_HEIST_DEFAULT_1
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC
SWITCH eMask
CASE MASK_CASINO_HEIST_GEOMETRIC_0
CASE MASK_CASINO_HEIST_GEOMETRIC_1
CASE MASK_CASINO_HEIST_GEOMETRIC_2
CASE MASK_CASINO_HEIST_GEOMETRIC_3
CASE MASK_CASINO_HEIST_GEOMETRIC_4
CASE MASK_CASINO_HEIST_GEOMETRIC_5
CASE MASK_CASINO_HEIST_GEOMETRIC_6
CASE MASK_CASINO_HEIST_GEOMETRIC_7
CASE MASK_CASINO_HEIST_GEOMETRIC_8
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_HUNTER
SWITCH eMask
CASE MASK_CASINO_HEIST_HUNTER_0
CASE MASK_CASINO_HEIST_HUNTER_1
CASE MASK_CASINO_HEIST_HUNTER_2
CASE MASK_CASINO_HEIST_HUNTER_3
CASE MASK_CASINO_HEIST_HUNTER_4
CASE MASK_CASINO_HEIST_HUNTER_5
CASE MASK_CASINO_HEIST_HUNTER_6
CASE MASK_CASINO_HEIST_HUNTER_7
CASE MASK_CASINO_HEIST_HUNTER_8
CASE MASK_CASINO_HEIST_HUNTER_9
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_ONIHALF
SWITCH eMask
CASE MASK_CASINO_HEIST_ONIHALF_0
CASE MASK_CASINO_HEIST_ONIHALF_1
CASE MASK_CASINO_HEIST_ONIHALF_2
CASE MASK_CASINO_HEIST_ONIHALF_3
CASE MASK_CASINO_HEIST_ONIHALF_4
CASE MASK_CASINO_HEIST_ONIHALF_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_EMOJI
SWITCH eMask
CASE MASK_CASINO_HEIST_EMOJI_0
CASE MASK_CASINO_HEIST_EMOJI_1
CASE MASK_CASINO_HEIST_EMOJI_2
CASE MASK_CASINO_HEIST_EMOJI_3
CASE MASK_CASINO_HEIST_EMOJI_4
CASE MASK_CASINO_HEIST_EMOJI_5
CASE MASK_CASINO_HEIST_EMOJI_6
CASE MASK_CASINO_HEIST_EMOJI_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL
SWITCH eMask
CASE MASK_CASINO_HEIST_ORNATE_SKULL_0
CASE MASK_CASINO_HEIST_ORNATE_SKULL_1
CASE MASK_CASINO_HEIST_ORNATE_SKULL_2
CASE MASK_CASINO_HEIST_ORNATE_SKULL_3
CASE MASK_CASINO_HEIST_ORNATE_SKULL_4
CASE MASK_CASINO_HEIST_ORNATE_SKULL_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS
SWITCH eMask
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_0
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_1
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_2
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_3
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_4
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_GUERILLA
SWITCH eMask
CASE MASK_CASINO_HEIST_GUERILLA_0
CASE MASK_CASINO_HEIST_GUERILLA_1
CASE MASK_CASINO_HEIST_GUERILLA_2
CASE MASK_CASINO_HEIST_GUERILLA_3
CASE MASK_CASINO_HEIST_GUERILLA_4
CASE MASK_CASINO_HEIST_GUERILLA_5
CASE MASK_CASINO_HEIST_GUERILLA_6
CASE MASK_CASINO_HEIST_GUERILLA_7
CASE MASK_CASINO_HEIST_GUERILLA_8
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_CLOWNS
SWITCH eMask
CASE MASK_CASINO_HEIST_CLOWNS_0
CASE MASK_CASINO_HEIST_CLOWNS_1
CASE MASK_CASINO_HEIST_CLOWNS_2
CASE MASK_CASINO_HEIST_CLOWNS_3
CASE MASK_CASINO_HEIST_CLOWNS_4
CASE MASK_CASINO_HEIST_CLOWNS_5
CASE MASK_CASINO_HEIST_CLOWNS_6
CASE MASK_CASINO_HEIST_CLOWNS_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_ANIMALS
SWITCH eMask
CASE MASK_CASINO_HEIST_ANIMALS_0
CASE MASK_CASINO_HEIST_ANIMALS_1
CASE MASK_CASINO_HEIST_ANIMALS_2
CASE MASK_CASINO_HEIST_ANIMALS_3
CASE MASK_CASINO_HEIST_ANIMALS_4
CASE MASK_CASINO_HEIST_ANIMALS_5
CASE MASK_CASINO_HEIST_ANIMALS_6
CASE MASK_CASINO_HEIST_ANIMALS_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_RIOT
SWITCH eMask
CASE MASK_CASINO_HEIST_RIOT_0
CASE MASK_CASINO_HEIST_RIOT_1
CASE MASK_CASINO_HEIST_RIOT_2
CASE MASK_CASINO_HEIST_RIOT_3
CASE MASK_CASINO_HEIST_RIOT_4
CASE MASK_CASINO_HEIST_RIOT_5
CASE MASK_CASINO_HEIST_RIOT_6
CASE MASK_CASINO_HEIST_RIOT_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_ONIFULL
SWITCH eMask
CASE MASK_CASINO_HEIST_ONIFULL_0
CASE MASK_CASINO_HEIST_ONIFULL_1
CASE MASK_CASINO_HEIST_ONIFULL_2
CASE MASK_CASINO_HEIST_ONIFULL_3
CASE MASK_CASINO_HEIST_ONIFULL_4
CASE MASK_CASINO_HEIST_ONIFULL_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_CASINO_HEIST_HOCKEY
SWITCH eMask
CASE MASK_CASINO_HEIST_HOCKEY_0
CASE MASK_CASINO_HEIST_HOCKEY_1
CASE MASK_CASINO_HEIST_HOCKEY_2
CASE MASK_CASINO_HEIST_HOCKEY_3
CASE MASK_CASINO_HEIST_HOCKEY_4
CASE MASK_CASINO_HEIST_HOCKEY_5
CASE MASK_CASINO_HEIST_HOCKEY_6
CASE MASK_CASINO_HEIST_HOCKEY_7
RETURN TRUE
ENDSWITCH
BREAK
#ENDIF
ENDSWITCH
SWITCH eStyle
CASE MASK_ISLAND_HEIST_BRANDED_HALF
SWITCH eMask
CASE MASK_ISLAND_HEIST_BRANDED_HALF_0
CASE MASK_ISLAND_HEIST_BRANDED_HALF_1
CASE MASK_ISLAND_HEIST_BRANDED_HALF_2
CASE MASK_ISLAND_HEIST_BRANDED_HALF_3
CASE MASK_ISLAND_HEIST_BRANDED_HALF_4
CASE MASK_ISLAND_HEIST_BRANDED_HALF_5
CASE MASK_ISLAND_HEIST_BRANDED_HALF_6
CASE MASK_ISLAND_HEIST_BRANDED_HALF_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_PAINTED_FULL
SWITCH eMask
CASE MASK_ISLAND_HEIST_PAINTED_FULL_0
CASE MASK_ISLAND_HEIST_PAINTED_FULL_1
CASE MASK_ISLAND_HEIST_PAINTED_FULL_2
CASE MASK_ISLAND_HEIST_PAINTED_FULL_3
CASE MASK_ISLAND_HEIST_PAINTED_FULL_4
CASE MASK_ISLAND_HEIST_PAINTED_FULL_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_CAMO_SPEC
SWITCH eMask
CASE MASK_ISLAND_HEIST_CAMO_SPEC_0
CASE MASK_ISLAND_HEIST_CAMO_SPEC_1
CASE MASK_ISLAND_HEIST_CAMO_SPEC_2
CASE MASK_ISLAND_HEIST_CAMO_SPEC_3
CASE MASK_ISLAND_HEIST_CAMO_SPEC_4
CASE MASK_ISLAND_HEIST_CAMO_SPEC_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS
SWITCH eMask
CASE MASK_ISLAND_HEIST_NECK_GAITERS_0
CASE MASK_ISLAND_HEIST_NECK_GAITERS_1
CASE MASK_ISLAND_HEIST_NECK_GAITERS_2
CASE MASK_ISLAND_HEIST_NECK_GAITERS_3
CASE MASK_ISLAND_HEIST_NECK_GAITERS_4
CASE MASK_ISLAND_HEIST_NECK_GAITERS_5
CASE MASK_ISLAND_HEIST_NECK_GAITERS_6
CASE MASK_ISLAND_HEIST_NECK_GAITERS_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_FACE_WRAPS
SWITCH eMask
CASE MASK_ISLAND_HEIST_FACE_WRAPS_0
CASE MASK_ISLAND_HEIST_FACE_WRAPS_1
CASE MASK_ISLAND_HEIST_FACE_WRAPS_2
CASE MASK_ISLAND_HEIST_FACE_WRAPS_3
CASE MASK_ISLAND_HEIST_FACE_WRAPS_4
CASE MASK_ISLAND_HEIST_FACE_WRAPS_5
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_OPS
SWITCH eMask
CASE MASK_ISLAND_HEIST_NIGHT_OPS_0
CASE MASK_ISLAND_HEIST_NIGHT_OPS_1
CASE MASK_ISLAND_HEIST_NIGHT_OPS_2
CASE MASK_ISLAND_HEIST_NIGHT_OPS_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_VISION
SWITCH eMask
CASE MASK_ISLAND_HEIST_NIGHT_VISION_0
CASE MASK_ISLAND_HEIST_NIGHT_VISION_1
CASE MASK_ISLAND_HEIST_NIGHT_VISION_2
CASE MASK_ISLAND_HEIST_NIGHT_VISION_3
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF
SWITCH eMask
CASE MASK_ISLAND_HEIST_CAMO_HALF_0
CASE MASK_ISLAND_HEIST_CAMO_HALF_1
CASE MASK_ISLAND_HEIST_CAMO_HALF_2
CASE MASK_ISLAND_HEIST_CAMO_HALF_3
CASE MASK_ISLAND_HEIST_CAMO_HALF_4
CASE MASK_ISLAND_HEIST_CAMO_HALF_5
CASE MASK_ISLAND_HEIST_CAMO_HALF_6
CASE MASK_ISLAND_HEIST_CAMO_HALF_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION
SWITCH eMask
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_0
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_1
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_2
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_3
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_4
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_5
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_6
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA
SWITCH eMask
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_0
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_1
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_2
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_3
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_4
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_5
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_6
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_7
RETURN TRUE
ENDSWITCH
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY
SWITCH eMask
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_0
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_1
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_2
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_3
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_4
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_5
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_6
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_7
RETURN TRUE
ENDSWITCH
BREAK
ENDSWITCH
// Otherwise, the outfit isn't in that style.
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Get the style super set that the passed in outfit belongs to.
/// RETURNS:
/// Outfit style set MP_HEIST_OUTFIT_ENUM (e.g. OUTFIT_HEIST_STREET_0)
FUNC HEIST_MASK GET_STYLE_FROM_MASK(INT iMask)
MP_OUTFIT_MASK_ENUM eMask = INT_TO_ENUM(MP_OUTFIT_MASK_ENUM, iMask)
SWITCH eMask
CASE OUTFIT_MASK_AMATEUR_0
CASE OUTFIT_MASK_AMATEUR_1
CASE OUTFIT_MASK_AMATEUR_2
CASE OUTFIT_MASK_AMATEUR_3
RETURN MASK_AMATEUR
CASE OUTFIT_MASK_ANIMALS_0
CASE OUTFIT_MASK_ANIMALS_1
CASE OUTFIT_MASK_ANIMALS_2
CASE OUTFIT_MASK_ANIMALS_3
RETURN MASK_ANIMALS
CASE OUTFIT_MASK_PAPER_BAGS_0
CASE OUTFIT_MASK_PAPER_BAGS_1
CASE OUTFIT_MASK_PAPER_BAGS_2
CASE OUTFIT_MASK_PAPER_BAGS_3
CASE OUTFIT_MASK_PAPER_BAGS_4
CASE OUTFIT_MASK_PAPER_BAGS_5
CASE OUTFIT_MASK_PAPER_BAGS_6
CASE OUTFIT_MASK_PAPER_BAGS_7
CASE OUTFIT_MASK_PAPER_BAGS_8
CASE OUTFIT_MASK_PAPER_BAGS_9
CASE OUTFIT_MASK_PAPER_BAGS_10
CASE OUTFIT_MASK_PAPER_BAGS_11
CASE OUTFIT_MASK_PAPER_BAGS_12
CASE OUTFIT_MASK_PAPER_BAGS_13
CASE OUTFIT_MASK_PAPER_BAGS_14
CASE OUTFIT_MASK_PAPER_BAGS_15
CASE OUTFIT_MASK_PAPER_BAGS_16
CASE OUTFIT_MASK_PAPER_BAGS_17
CASE OUTFIT_MASK_PAPER_BAGS_18
CASE OUTFIT_MASK_PAPER_BAGS_19
CASE OUTFIT_MASK_PAPER_BAGS_20
CASE OUTFIT_MASK_PAPER_BAGS_21
CASE OUTFIT_MASK_PAPER_BAGS_22
CASE OUTFIT_MASK_PAPER_BAGS_23
CASE OUTFIT_MASK_PAPER_BAGS_24
CASE OUTFIT_MASK_PAPER_BAGS_25
RETURN MASK_PAPER_BAGS
CASE OUTFIT_MASK_BEASTS_0
CASE OUTFIT_MASK_BEASTS_1
CASE OUTFIT_MASK_BEASTS_2
CASE OUTFIT_MASK_BEASTS_3
RETURN MASK_BEASTS
CASE OUTFIT_MASK_CHARACTERS_0
CASE OUTFIT_MASK_CHARACTERS_1
CASE OUTFIT_MASK_CHARACTERS_2
CASE OUTFIT_MASK_CHARACTERS_3
RETURN MASK_CHARACTERS
CASE OUTFIT_MASK_CLASSIC_MONSTERS_0
CASE OUTFIT_MASK_CLASSIC_MONSTERS_1
CASE OUTFIT_MASK_CLASSIC_MONSTERS_2
CASE OUTFIT_MASK_CLASSIC_MONSTERS_3
RETURN MASK_CLASSIC_MONSTERS
CASE OUTFIT_MASK_CARNIVAL_0
CASE OUTFIT_MASK_CARNIVAL_1
CASE OUTFIT_MASK_CARNIVAL_2
CASE OUTFIT_MASK_CARNIVAL_3
RETURN MASK_CARNIVAL
CASE OUTFIT_MASK_GAS_MASKS_0
// CASE OUTFIT_MASK_GAS_MASKS_1 removed from gas masks group bug:2121402
RETURN MASK_GAS_MASKS
CASE OUTFIT_MASK_HELMETS_0
CASE OUTFIT_MASK_HELMETS_1
CASE OUTFIT_MASK_HELMETS_2
CASE OUTFIT_MASK_HELMETS_3
CASE OUTFIT_MASK_HELMETS_4
CASE OUTFIT_MASK_HELMETS_5
CASE OUTFIT_MASK_HELMETS_6
CASE OUTFIT_MASK_HELMETS_7
RETURN MASK_HELMETS
CASE OUTFIT_MASK_HORROR_HOCKEY_0
CASE OUTFIT_MASK_HORROR_HOCKEY_1
CASE OUTFIT_MASK_HORROR_HOCKEY_2
CASE OUTFIT_MASK_HORROR_HOCKEY_3
RETURN MASK_HORROR_HOCKEY
CASE OUTFIT_MASK_PUPPETS_0
CASE OUTFIT_MASK_PUPPETS_1
CASE OUTFIT_MASK_PUPPETS_2
CASE OUTFIT_MASK_PUPPETS_3
RETURN MASK_PUPPETS
CASE OUTFIT_MASK_SKULLS_0
CASE OUTFIT_MASK_SKULLS_1
CASE OUTFIT_MASK_SKULLS_2
CASE OUTFIT_MASK_SKULLS_3
RETURN MASK_SKULLS
CASE OUTFIT_MASK_TACTICAL_0
CASE OUTFIT_MASK_TACTICAL_1
CASE OUTFIT_MASK_TACTICAL_2
CASE OUTFIT_MASK_TACTICAL_3
RETURN MASK_TACTICAL
CASE OUTFIT_MASK_TAPE_0
CASE OUTFIT_MASK_TAPE_1
CASE OUTFIT_MASK_TAPE_2
CASE OUTFIT_MASK_TAPE_3
RETURN MASK_TAPES
CASE OUTFIT_MASK_THEATRICAL_0
CASE OUTFIT_MASK_THEATRICAL_1
CASE OUTFIT_MASK_THEATRICAL_2
CASE OUTFIT_MASK_THEATRICAL_3
RETURN MASK_THEATRICAL
CASE OUTFIT_MASK_PIGS_0
CASE OUTFIT_MASK_PIGS_1
CASE OUTFIT_MASK_PIGS_2
CASE OUTFIT_MASK_PIGS_3
return MASK_PIGS
CASE OUTFIT_MASK_DUCT_TAPE_0
CASE OUTFIT_MASK_DUCT_TAPE_1
CASE OUTFIT_MASK_DUCT_TAPE_2
CASE OUTFIT_MASK_DUCT_TAPE_3
return MASK_DUCT_TAPE
CASE OUTFIT_MASK_INCOGNITO_0
CASE OUTFIT_MASK_INCOGNITO_1
CASE OUTFIT_MASK_INCOGNITO_2
CASE OUTFIT_MASK_INCOGNITO_3
return MASK_INCOGNITO
CASE OUTFIT_MASK_BALACLAVAS_0
CASE OUTFIT_MASK_BALACLAVAS_1
CASE OUTFIT_MASK_BALACLAVAS_2
CASE OUTFIT_MASK_BALACLAVAS_3
CASE OUTFIT_MASK_BALACLAVAS_4
CASE OUTFIT_MASK_BALACLAVAS_5
CASE OUTFIT_MASK_BALACLAVAS_6
CASE OUTFIT_MASK_BALACLAVAS_7
CASE OUTFIT_MASK_BALACLAVAS_8
CASE OUTFIT_MASK_BALACLAVAS_9
CASE OUTFIT_MASK_BALACLAVAS_10
CASE OUTFIT_MASK_BALACLAVAS_11
return MASK_BALACLAVAS
CASE OUTFIT_MASK_CAMO_0
CASE OUTFIT_MASK_CAMO_1
CASE OUTFIT_MASK_CAMO_2
CASE OUTFIT_MASK_CAMO_3
CASE OUTFIT_MASK_CAMO_4
CASE OUTFIT_MASK_CAMO_5
return MASK_CAMO
CASE OUTFIT_MASK_PSYCHOTIC_0
CASE OUTFIT_MASK_PSYCHOTIC_1
CASE OUTFIT_MASK_PSYCHOTIC_2
CASE OUTFIT_MASK_PSYCHOTIC_3
return MASK_PSYCHOTIC
CASE OUTFIT_MASK_STREET_0
CASE OUTFIT_MASK_STREET_1
CASE OUTFIT_MASK_STREET_2
CASE OUTFIT_MASK_STREET_3
CASE OUTFIT_MASK_STREET_4
CASE OUTFIT_MASK_STREET_5
return MASK_STREET
CASE OUTFIT_MASK_BANDANAS_0
CASE OUTFIT_MASK_BANDANAS_1
CASE OUTFIT_MASK_BANDANAS_2
CASE OUTFIT_MASK_BANDANAS_3
return MASK_BANDANAS
CASE OUTFIT_MASK_HOODS_0
CASE OUTFIT_MASK_HOODS_1
CASE OUTFIT_MASK_HOODS_2
CASE OUTFIT_MASK_HOODS_3
return MASK_HOODS
CASE OUTFIT_MASK_DESIGNER_0
CASE OUTFIT_MASK_DESIGNER_1
CASE OUTFIT_MASK_DESIGNER_2
CASE OUTFIT_MASK_DESIGNER_3
CASE OUTFIT_MASK_DESIGNER_4
CASE OUTFIT_MASK_DESIGNER_5
return MASK_DESIGNER
CASE MASK_HEIST_HALLOWEEN_DEVILISH_0
CASE MASK_HEIST_HALLOWEEN_DEVILISH_1
CASE MASK_HEIST_HALLOWEEN_DEVILISH_2
CASE MASK_HEIST_HALLOWEEN_DEVILISH_3
CASE MASK_HEIST_HALLOWEEN_DEVILISH_4
CASE MASK_HEIST_HALLOWEEN_DEVILISH_5
return MASK_DEVILISH
CASE MASK_HEIST_HALLOWEEN_SADISTIC_0
CASE MASK_HEIST_HALLOWEEN_SADISTIC_1
CASE MASK_HEIST_HALLOWEEN_SADISTIC_2
CASE MASK_HEIST_HALLOWEEN_SADISTIC_3
return MASK_SADISTIC
CASE MASK_HEIST_HALLOWEEN_POSSESSED_0
CASE MASK_HEIST_HALLOWEEN_POSSESSED_1
CASE MASK_HEIST_HALLOWEEN_POSSESSED_2
CASE MASK_HEIST_HALLOWEEN_POSSESSED_3
return MASK_POSSESSED
CASE MASK_HEIST_HALLOWEEN_FIENDS_0
CASE MASK_HEIST_HALLOWEEN_FIENDS_1
CASE MASK_HEIST_HALLOWEEN_FIENDS_2
CASE MASK_HEIST_HALLOWEEN_FIENDS_3
return MASK_FIENDS
CASE MASK_HEIST_HALLOWEEN_CREATURES_0
CASE MASK_HEIST_HALLOWEEN_CREATURES_1
CASE MASK_HEIST_HALLOWEEN_CREATURES_2
CASE MASK_HEIST_HALLOWEEN_CREATURES_3
return MASK_CREATURES
CASE MASK_HEIST_HALLOWEEN_WICKED_0
CASE MASK_HEIST_HALLOWEEN_WICKED_1
CASE MASK_HEIST_HALLOWEEN_WICKED_2
CASE MASK_HEIST_HALLOWEEN_WICKED_3
return MASK_WICKED
// TOO MANY CASES IN SWITCH, ADD BELOW
ENDSWITCH
SWITCH eMask
CASE MASK_CASINO_HEIST_DEFAULT_0
CASE MASK_CASINO_HEIST_DEFAULT_1
RETURN MASK_CASINO_HEIST_DEFAULT
CASE MASK_CASINO_HEIST_GEOMETRIC_0
CASE MASK_CASINO_HEIST_GEOMETRIC_1
CASE MASK_CASINO_HEIST_GEOMETRIC_2
CASE MASK_CASINO_HEIST_GEOMETRIC_3
CASE MASK_CASINO_HEIST_GEOMETRIC_4
CASE MASK_CASINO_HEIST_GEOMETRIC_5
CASE MASK_CASINO_HEIST_GEOMETRIC_6
CASE MASK_CASINO_HEIST_GEOMETRIC_7
CASE MASK_CASINO_HEIST_GEOMETRIC_8
RETURN MASK_CASINO_HEIST_GEOMETRIC
CASE MASK_CASINO_HEIST_HUNTER_0
CASE MASK_CASINO_HEIST_HUNTER_1
CASE MASK_CASINO_HEIST_HUNTER_2
CASE MASK_CASINO_HEIST_HUNTER_3
CASE MASK_CASINO_HEIST_HUNTER_4
CASE MASK_CASINO_HEIST_HUNTER_5
CASE MASK_CASINO_HEIST_HUNTER_6
CASE MASK_CASINO_HEIST_HUNTER_7
CASE MASK_CASINO_HEIST_HUNTER_8
CASE MASK_CASINO_HEIST_HUNTER_9
RETURN MASK_CASINO_HEIST_HUNTER
CASE MASK_CASINO_HEIST_ONIHALF_0
CASE MASK_CASINO_HEIST_ONIHALF_1
CASE MASK_CASINO_HEIST_ONIHALF_2
CASE MASK_CASINO_HEIST_ONIHALF_3
CASE MASK_CASINO_HEIST_ONIHALF_4
CASE MASK_CASINO_HEIST_ONIHALF_5
RETURN MASK_CASINO_HEIST_ONIHALF
CASE MASK_CASINO_HEIST_EMOJI_0
CASE MASK_CASINO_HEIST_EMOJI_1
CASE MASK_CASINO_HEIST_EMOJI_2
CASE MASK_CASINO_HEIST_EMOJI_3
CASE MASK_CASINO_HEIST_EMOJI_4
CASE MASK_CASINO_HEIST_EMOJI_5
CASE MASK_CASINO_HEIST_EMOJI_6
CASE MASK_CASINO_HEIST_EMOJI_7
RETURN MASK_CASINO_HEIST_EMOJI
CASE MASK_CASINO_HEIST_ORNATE_SKULL_0
CASE MASK_CASINO_HEIST_ORNATE_SKULL_1
CASE MASK_CASINO_HEIST_ORNATE_SKULL_2
CASE MASK_CASINO_HEIST_ORNATE_SKULL_3
CASE MASK_CASINO_HEIST_ORNATE_SKULL_4
CASE MASK_CASINO_HEIST_ORNATE_SKULL_5
RETURN MASK_CASINO_HEIST_ORNATE_SKULL
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_0
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_1
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_2
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_3
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_4
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_5
RETURN MASK_CASINO_HEIST_LUCKY_FRUITS
CASE MASK_CASINO_HEIST_GUERILLA_0
CASE MASK_CASINO_HEIST_GUERILLA_1
CASE MASK_CASINO_HEIST_GUERILLA_2
CASE MASK_CASINO_HEIST_GUERILLA_3
CASE MASK_CASINO_HEIST_GUERILLA_4
CASE MASK_CASINO_HEIST_GUERILLA_5
CASE MASK_CASINO_HEIST_GUERILLA_6
CASE MASK_CASINO_HEIST_GUERILLA_7
CASE MASK_CASINO_HEIST_GUERILLA_8
RETURN MASK_CASINO_HEIST_GUERILLA
CASE MASK_CASINO_HEIST_CLOWNS_0
CASE MASK_CASINO_HEIST_CLOWNS_1
CASE MASK_CASINO_HEIST_CLOWNS_2
CASE MASK_CASINO_HEIST_CLOWNS_3
CASE MASK_CASINO_HEIST_CLOWNS_4
CASE MASK_CASINO_HEIST_CLOWNS_5
CASE MASK_CASINO_HEIST_CLOWNS_6
CASE MASK_CASINO_HEIST_CLOWNS_7
RETURN MASK_CASINO_HEIST_CLOWNS
CASE MASK_CASINO_HEIST_ANIMALS_0
CASE MASK_CASINO_HEIST_ANIMALS_1
CASE MASK_CASINO_HEIST_ANIMALS_2
CASE MASK_CASINO_HEIST_ANIMALS_3
CASE MASK_CASINO_HEIST_ANIMALS_4
CASE MASK_CASINO_HEIST_ANIMALS_5
CASE MASK_CASINO_HEIST_ANIMALS_6
CASE MASK_CASINO_HEIST_ANIMALS_7
RETURN MASK_CASINO_HEIST_ANIMALS
CASE MASK_CASINO_HEIST_RIOT_0
CASE MASK_CASINO_HEIST_RIOT_1
CASE MASK_CASINO_HEIST_RIOT_2
CASE MASK_CASINO_HEIST_RIOT_3
CASE MASK_CASINO_HEIST_RIOT_4
CASE MASK_CASINO_HEIST_RIOT_5
CASE MASK_CASINO_HEIST_RIOT_6
CASE MASK_CASINO_HEIST_RIOT_7
RETURN MASK_CASINO_HEIST_RIOT
CASE MASK_CASINO_HEIST_ONIFULL_0
CASE MASK_CASINO_HEIST_ONIFULL_1
CASE MASK_CASINO_HEIST_ONIFULL_2
CASE MASK_CASINO_HEIST_ONIFULL_3
CASE MASK_CASINO_HEIST_ONIFULL_4
CASE MASK_CASINO_HEIST_ONIFULL_5
RETURN MASK_CASINO_HEIST_ONIFULL
CASE MASK_CASINO_HEIST_HOCKEY_0
CASE MASK_CASINO_HEIST_HOCKEY_1
CASE MASK_CASINO_HEIST_HOCKEY_2
CASE MASK_CASINO_HEIST_HOCKEY_3
CASE MASK_CASINO_HEIST_HOCKEY_4
CASE MASK_CASINO_HEIST_HOCKEY_5
CASE MASK_CASINO_HEIST_HOCKEY_6
CASE MASK_CASINO_HEIST_HOCKEY_7
RETURN MASK_CASINO_HEIST_HOCKEY
CASE MASK_ISLAND_HEIST_BRANDED_HALF_0
CASE MASK_ISLAND_HEIST_BRANDED_HALF_1
CASE MASK_ISLAND_HEIST_BRANDED_HALF_2
CASE MASK_ISLAND_HEIST_BRANDED_HALF_3
CASE MASK_ISLAND_HEIST_BRANDED_HALF_4
CASE MASK_ISLAND_HEIST_BRANDED_HALF_5
CASE MASK_ISLAND_HEIST_BRANDED_HALF_6
CASE MASK_ISLAND_HEIST_BRANDED_HALF_7
RETURN MASK_ISLAND_HEIST_BRANDED_HALF
CASE MASK_ISLAND_HEIST_PAINTED_FULL_0
CASE MASK_ISLAND_HEIST_PAINTED_FULL_1
CASE MASK_ISLAND_HEIST_PAINTED_FULL_2
CASE MASK_ISLAND_HEIST_PAINTED_FULL_3
CASE MASK_ISLAND_HEIST_PAINTED_FULL_4
CASE MASK_ISLAND_HEIST_PAINTED_FULL_5
RETURN MASK_ISLAND_HEIST_PAINTED_FULL
CASE MASK_ISLAND_HEIST_CAMO_SPEC_0
CASE MASK_ISLAND_HEIST_CAMO_SPEC_1
CASE MASK_ISLAND_HEIST_CAMO_SPEC_2
CASE MASK_ISLAND_HEIST_CAMO_SPEC_3
CASE MASK_ISLAND_HEIST_CAMO_SPEC_4
CASE MASK_ISLAND_HEIST_CAMO_SPEC_5
RETURN MASK_ISLAND_HEIST_CAMO_SPEC
CASE MASK_ISLAND_HEIST_NECK_GAITERS_0
CASE MASK_ISLAND_HEIST_NECK_GAITERS_1
CASE MASK_ISLAND_HEIST_NECK_GAITERS_2
CASE MASK_ISLAND_HEIST_NECK_GAITERS_3
CASE MASK_ISLAND_HEIST_NECK_GAITERS_4
CASE MASK_ISLAND_HEIST_NECK_GAITERS_5
CASE MASK_ISLAND_HEIST_NECK_GAITERS_6
CASE MASK_ISLAND_HEIST_NECK_GAITERS_7
RETURN MASK_ISLAND_HEIST_NECK_GAITERS
CASE MASK_ISLAND_HEIST_FACE_WRAPS_0
CASE MASK_ISLAND_HEIST_FACE_WRAPS_1
CASE MASK_ISLAND_HEIST_FACE_WRAPS_2
CASE MASK_ISLAND_HEIST_FACE_WRAPS_3
CASE MASK_ISLAND_HEIST_FACE_WRAPS_4
CASE MASK_ISLAND_HEIST_FACE_WRAPS_5
RETURN MASK_ISLAND_HEIST_FACE_WRAPS
CASE MASK_ISLAND_HEIST_NIGHT_OPS_0
CASE MASK_ISLAND_HEIST_NIGHT_OPS_1
CASE MASK_ISLAND_HEIST_NIGHT_OPS_2
CASE MASK_ISLAND_HEIST_NIGHT_OPS_3
RETURN MASK_ISLAND_HEIST_NIGHT_OPS
CASE MASK_ISLAND_HEIST_NIGHT_VISION_0
CASE MASK_ISLAND_HEIST_NIGHT_VISION_1
CASE MASK_ISLAND_HEIST_NIGHT_VISION_2
CASE MASK_ISLAND_HEIST_NIGHT_VISION_3
RETURN MASK_ISLAND_HEIST_NIGHT_VISION
CASE MASK_ISLAND_HEIST_CAMO_HALF_0
CASE MASK_ISLAND_HEIST_CAMO_HALF_1
CASE MASK_ISLAND_HEIST_CAMO_HALF_2
CASE MASK_ISLAND_HEIST_CAMO_HALF_3
CASE MASK_ISLAND_HEIST_CAMO_HALF_4
CASE MASK_ISLAND_HEIST_CAMO_HALF_5
CASE MASK_ISLAND_HEIST_CAMO_HALF_6
CASE MASK_ISLAND_HEIST_CAMO_HALF_7
RETURN MASK_ISLAND_HEIST_CAMO_HALF
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_0
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_1
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_2
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_3
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_4
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_5
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_6
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_7
RETURN MASK_ISLAND_HEIST_MONO_NIGHT_VISION
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_0
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_1
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_2
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_3
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_4
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_5
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_6
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_7
RETURN MASK_ISLAND_HEIST_ISLAND_GUERILLA
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_0
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_1
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_2
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_3
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_4
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_5
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_6
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_7
RETURN MASK_ISLAND_HEIST_PATTERNED_HOCKEY
ENDSWITCH
// Error case, mask doesn't have a valid style.
RETURN MASK_NONE
ENDFUNC
/// PURPOSE:
/// Get the style super set that the passed in outfit belongs to.
/// RETURNS:
/// Outfit style set MP_HEIST_OUTFIT_ENUM (e.g. OUTFIT_HEIST_STREET_0)
FUNC HEIST_MASK GET_DEFAULT_MASK_STYLE_FROM_OUTFIT(INT iOutfit)
MP_OUTFIT_ENUM eOutfit = INT_TO_ENUM(MP_OUTFIT_ENUM, iOutfit)
SWITCH eOutfit
CASE OUTFIT_HEIST_STREET_0
CASE OUTFIT_HEIST_STREET_1
CASE OUTFIT_HEIST_STREET_2
CASE OUTFIT_HEIST_STREET_3
RETURN MASK_DUCT_TAPE
CASE OUTFIT_HEIST_CASUAL_0
CASE OUTFIT_HEIST_CASUAL_1
CASE OUTFIT_HEIST_CASUAL_2
CASE OUTFIT_HEIST_CASUAL_3
RETURN MASK_TAPES
CASE OUTFIT_HEIST_DRIVER_0
CASE OUTFIT_HEIST_DRIVER_1
CASE OUTFIT_HEIST_DRIVER_2
CASE OUTFIT_HEIST_DRIVER_3
RETURN MASK_CARNIVAL
CASE OUTFIT_HEIST_CASUAL_STEALTH_0
CASE OUTFIT_HEIST_CASUAL_STEALTH_1
CASE OUTFIT_HEIST_CASUAL_STEALTH_2
CASE OUTFIT_HEIST_CASUAL_STEALTH_3
RETURN MASK_AMATEUR
CASE OUTFIT_HEIST_STREET_COMBAT_0
CASE OUTFIT_HEIST_STREET_COMBAT_1
CASE OUTFIT_HEIST_STREET_COMBAT_2
CASE OUTFIT_HEIST_STREET_COMBAT_3
RETURN MASK_BEASTS
CASE OUTFIT_HEIST_TACTICAL_STEALTH_0
CASE OUTFIT_HEIST_TACTICAL_STEALTH_1
CASE OUTFIT_HEIST_TACTICAL_STEALTH_2
CASE OUTFIT_HEIST_TACTICAL_STEALTH_3
RETURN MASK_TACTICAL
CASE OUTFIT_HEIST_LIGHT_COMBAT_0
CASE OUTFIT_HEIST_LIGHT_COMBAT_1
CASE OUTFIT_HEIST_LIGHT_COMBAT_2
CASE OUTFIT_HEIST_LIGHT_COMBAT_3
RETURN MASK_HORROR_HOCKEY
CASE OUTFIT_HEIST_HEAVY_COMBAT_0
CASE OUTFIT_HEIST_HEAVY_COMBAT_1
CASE OUTFIT_HEIST_HEAVY_COMBAT_2
CASE OUTFIT_HEIST_HEAVY_COMBAT_3
RETURN MASK_SKULLS
CASE OUTFIT_HEIST_COVERALLS_0
CASE OUTFIT_HEIST_COVERALLS_1
CASE OUTFIT_HEIST_COVERALLS_2
CASE OUTFIT_HEIST_COVERALLS_3
RETURN MASK_CLASSIC_MONSTERS
CASE OUTFIT_HEIST_POLICE_0
RETURN MASK_PIGS
CASE OUTFIT_HEIST_HAZCHEM_0
CASE OUTFIT_HEIST_HAZCHEM_1
CASE OUTFIT_HEIST_HAZCHEM_2
CASE OUTFIT_HEIST_HAZCHEM_3
RETURN MASK_GAS_MASKS
CASE OUTFIT_HEIST_SMART_SUITS_0
CASE OUTFIT_HEIST_SMART_SUITS_1
CASE OUTFIT_HEIST_SMART_SUITS_2
CASE OUTFIT_HEIST_SMART_SUITS_3
RETURN MASK_CHARACTERS
CASE OUTFIT_HEIST_NIGHT_BIKER_0
CASE OUTFIT_HEIST_NIGHT_BIKER_1
CASE OUTFIT_HEIST_NIGHT_BIKER_2
CASE OUTFIT_HEIST_NIGHT_BIKER_3
RETURN MASK_HELMETS
CASE OUTFIT_HEIST_SLOPPY_SUITS_0
CASE OUTFIT_HEIST_SLOPPY_SUITS_1
CASE OUTFIT_HEIST_SLOPPY_SUITS_2
CASE OUTFIT_HEIST_SLOPPY_SUITS_3
RETURN MASK_PUPPETS
CASE OUTFIT_HEIST_SHARP_SUITS_0
CASE OUTFIT_HEIST_SHARP_SUITS_1
CASE OUTFIT_HEIST_SHARP_SUITS_2
CASE OUTFIT_HEIST_SHARP_SUITS_3
RETURN MASK_HELMETS
CASE OUTFIT_HEIST_MINIMALIST_SUITS_0
CASE OUTFIT_HEIST_MINIMALIST_SUITS_1
CASE OUTFIT_HEIST_MINIMALIST_SUITS_2
CASE OUTFIT_HEIST_MINIMALIST_SUITS_3
RETURN MASK_GAS_MASKS
CASE OUTFIT_HEIST_TUXEDOS_0
CASE OUTFIT_HEIST_TUXEDOS_1
CASE OUTFIT_HEIST_TUXEDOS_2
CASE OUTFIT_HEIST_TUXEDOS_3
RETURN MASK_THEATRICAL
ENDSWITCH
PRINTLN("[CORONA][AMEC] - GET_DEFAULT_MASK_STYLE_FROM_OUTFIT - No default mask found for outfit: ", iOutfit)
// Error case, mask doesn't have a valid style.
RETURN MASK_NONE
ENDFUNC
/// PURPOSE:
/// Based on the outfit enum update the BERD drawable and texture id.
PROC OVERRIDE_OUTFIT_MASK_FOR_HIDDEN(MP_OUTFIT_ENUM eOutfit, BOOL bMale, INT &iBerdDrawable, INT &iBerdTexture, INT &iPropDrawable, INT &iPropTexture)
scrShopPedProp propItem
scrShopPedComponent componentItem
SWITCH eOutfit
CASE OUTFIT_VERSUS_CLASSIC_METAL_0
CASE OUTFIT_VERSUS_CLASSIC_METAL_1
CASE OUTFIT_VERSUS_CLASSIC_METAL_2
CASE OUTFIT_VERSUS_CLASSIC_METAL_3
CASE OUTFIT_VERSUS_CLASSIC_METAL_4
CASE OUTFIT_VERSUS_CLASSIC_METAL_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_8), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_BE_MY_VALENTINE(g_FMMC_STRUCT.iRootContentIDHash)
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_LTS_M_PHEAD_0_1), propItem)
iPropDrawable = propItem.m_propIndex
iPropTexture = propItem.m_textureIndex
ENDIF
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_8), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_BE_MY_VALENTINE(g_FMMC_STRUCT.iRootContentIDHash)
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_LTS_F_PHEAD_0_1), propItem)
iPropDrawable = propItem.m_propIndex
iPropTexture = propItem.m_textureIndex
ENDIF
ENDIF
BREAK
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_0
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_1
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_2
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_3
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_4
CASE OUTFIT_VERSUS_CLASSIC_TACTICAL_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_21), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_BE_MY_VALENTINE(g_FMMC_STRUCT.iRootContentIDHash)
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_LTS_M_PHEAD_0_0), propItem)
iPropDrawable = propItem.m_propIndex
iPropTexture = propItem.m_textureIndex
ENDIF
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_21), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_BE_MY_VALENTINE(g_FMMC_STRUCT.iRootContentIDHash)
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_LTS_F_PHEAD_0_0), propItem)
iPropDrawable = propItem.m_propIndex
iPropTexture = propItem.m_textureIndex
ENDIF
ENDIF
BREAK
CASE OUTFIT_VERSUS_CLASSIC_DUNE_0
CASE OUTFIT_VERSUS_CLASSIC_DUNE_1
CASE OUTFIT_VERSUS_CLASSIC_DUNE_2
CASE OUTFIT_VERSUS_CLASSIC_DUNE_3
CASE OUTFIT_VERSUS_CLASSIC_DUNE_4
CASE OUTFIT_VERSUS_CLASSIC_DUNE_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_20), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_BE_MY_VALENTINE(g_FMMC_STRUCT.iRootContentIDHash)
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_LTS_M_PHEAD_0_3), propItem)
iPropDrawable = propItem.m_propIndex
iPropTexture = propItem.m_textureIndex
ENDIF
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_20), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_BE_MY_VALENTINE(g_FMMC_STRUCT.iRootContentIDHash)
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_LTS_F_PHEAD_0_3), propItem)
iPropDrawable = propItem.m_propIndex
iPropTexture = propItem.m_textureIndex
ENDIF
ENDIF
BREAK
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_0
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_1
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_2
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_3
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_4
CASE OUTFIT_VERSUS_CLASSIC_SWAMP_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_19), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_BE_MY_VALENTINE(g_FMMC_STRUCT.iRootContentIDHash)
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_LTS_M_PHEAD_0_4), propItem)
iPropDrawable = propItem.m_propIndex
iPropTexture = propItem.m_textureIndex
ENDIF
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_19), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_BE_MY_VALENTINE(g_FMMC_STRUCT.iRootContentIDHash)
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_LTS_F_PHEAD_0_4), propItem)
iPropDrawable = propItem.m_propIndex
iPropTexture = propItem.m_textureIndex
ENDIF
ENDIF
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE:
/// Based on the outfit enum update the BERD drawable and texture id.
PROC OVERRIDE_OUTFIT_MASK_FOR_XMAS(MP_OUTFIT_ENUM eOutfit, BOOL bMale, INT &iBerdDrawable, INT &iBerdTexture)
scrShopPedComponent componentItem
SWITCH eOutfit
CASE OUTFIT_ADVERSARY_B_OVERRIDE_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_0), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_0), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_2), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_2), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_0), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_0), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_2), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_2), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_8
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_2), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_2), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_9
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_0), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_0), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_10
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_2), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_2), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_ADVERSARY_B_OVERRIDE_11
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_M_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_XMAS3_F_BERD_9_1), componentItem)
iBerdDrawable = componentItem.m_drawableIndex
iBerdTexture = componentItem.m_textureIndex
ENDIF
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE:
/// Will override the passed mask / prop components of an outfit if required
PROC PROCESS_OUTFIT_OVERRIDDEN_MASKS(MP_OUTFIT_ENUM eOutfit, BOOL bMale, INT &iBerdDrawable, INT &iBerdTexture, INT &iPropDrawable, INT &iPropTexture)
IF g_FMMC_STRUCT.iMissionType = FMMC_TYPE_MISSION
// If the creator has flagged that the masks need to be overridden
IF IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetFive, ciOVERRIDE_OUTFIT_MASKS)
OVERRIDE_OUTFIT_MASK_FOR_HIDDEN(eOutfit, bMale, iBerdDrawable, iBerdTexture, iPropDrawable, iPropTexture)
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] OVERRIDE_OUTFIT_MASK_FOR_HIDDEN ")
ENDIF
// If our tunable is indicating the Xmas masks are active
IF g_sMPTunables.bTOGGLE_HIDDEN_BEAST_MASKS_XMAS15
#IF IS_DEBUG_BUILD
OR GET_COMMANDLINE_PARAM_EXISTS("sc_MaskXMAS15")
#ENDIF
OVERRIDE_OUTFIT_MASK_FOR_XMAS(eOutfit, bMale, iBerdDrawable, iBerdTexture)
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] OVERRIDE_OUTFIT_MASK_FOR_XMAS ")
EXIT
ENDIF
ENDIF
ENDPROC
FUNC BOOL GET_MP_OUTFIT_DATA(MP_OUTFITS_DATA &sOutfitsData,MP_OUTFITS_APPLY_DATA sApplyOutfitdata,bool bApplyMasks = false)
INT i
REPEAT NUM_PED_COMPONENTS i
sOutfitsData.iComponentDrawableID[i] = -1
sOutfitsData.iComponentTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iPropDrawableID) i
sOutfitsData.iPropDrawableID[i] = -1
sOutfitsData.iPropTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iDLCTattooOverlay) i
sOutfitsData.iDLCTattooOverlay[i] = -1
ENDREPEAT
IF sApplyOutfitdata.eOutfit = OUTFIT_MP_DEFAULT
//No outfit needed
RETURN FALSE
ELIF sApplyOutfitdata.eOutfit = OUTFIT_MP_FREEMODE
INT iOwnedOutfitSlot = GET_LOCAL_PLAYER_OWNED_OUTFIT()
if iOwnedOutfitSlot != -1
AND GET_MP_OUTFIT_STORED_IN_SLOT(sOutfitsData,iOwnedOutfitSlot,bApplyMasks)
//remove any parachutes / bags
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = 0
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = 0
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] OUTFIT_MP_FREEMODE applying from saved outfit slot ")
ELSE
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] OUTFIT_MP_FREEMODE applying from saved packed stats ")
//No outfit needed use freemode
if bApplyMasks
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_BERD_1, -1) + GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_BERD_2, -1)
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_BERD, -1)
endif
if not IS_FAKE_MULTIPLAYER_MODE_SET()
PED_COMP_NAME_ENUM eHairToRestore
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_USING_HAIR_SA_STAT, -1)
eHairToRestore = INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO_SA, -1))
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] OUTFIT_MP_FREEMODE applying hair enum ", eHairToRestore, " from stat MP_STAT_CHAR_FM_STORED_HAIRDO_SA ")
ELSE
eHairToRestore = INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO, -1))
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] OUTFIT_MP_FREEMODE applying hair enum ", eHairToRestore, " from stat MP_STAT_CHAR_FM_STORED_HAIRDO ")
ENDIF
IF (eHairToRestore != DUMMY_PED_COMP)
PED_COMP_NAME_ENUM eGRHairItem = DUMMY_PED_COMP
IF (GET_ENTITY_MODEL(sApplyOutfitData.pedID) = MP_M_FREEMODE_01)
eGRHairItem = GET_MALE_HAIR(eHairToRestore)
ELIF (GET_ENTITY_MODEL(sApplyOutfitData.pedID) = MP_F_FREEMODE_01)
eGRHairItem = GET_FEMALE_HAIR(eHairToRestore)
ENDIF
IF (eGRHairItem != DUMMY_PED_COMP)
AND (eHairToRestore != eGRHairItem)
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] gr_hair: replacing hair enum ", eHairToRestore, " with gunrunning hair enum ", eGRHairItem)
eHairToRestore = eGRHairItem
ENDIF
ENDIF
PED_COMP_ITEM_DATA_STRUCT sItemData
sItemData = GET_PED_COMP_DATA_FOR_ITEM_MP(GET_ENTITY_MODEL(sApplyOutfitData.pedID),COMP_TYPE_HAIR,eHairToRestore)
sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = sItemData.iDrawable //GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_HAIR, -1)
sOutfitsData.iComponentTextureID[PED_COMP_HAIR] = sItemData.iTexture //GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_HAIR, -1)
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] OUTFIT_MP_FREEMODE applying hair from stats:",eHairToRestore,", draw:",sItemData.iDrawable,", textID:",sItemData.iTexture)
endif
sOutfitsData.iComponentDrawableID[PED_COMP_HEAD] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_HEAD, -1)
sOutfitsData.iComponentTextureID[PED_COMP_HEAD] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_HEAD, -1)
sOutfitsData.iComponentDrawableID[PED_COMP_TORSO] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_TORSO_1, -1) + GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_TORSO_2, -1)
sOutfitsData.iComponentTextureID[PED_COMP_TORSO] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_TORSO, -1)
sOutfitsData.iComponentDrawableID[PED_COMP_LEG] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_LEG, -1)
sOutfitsData.iComponentTextureID[PED_COMP_LEG] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_LEG, -1)
sOutfitsData.iComponentDrawableID[PED_COMP_FEET] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_FEET, -1)
sOutfitsData.iComponentTextureID[PED_COMP_FEET] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_FEET, -1)
sOutfitsData.iComponentDrawableID[PED_COMP_TEETH] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_TEETH, -1)
sOutfitsData.iComponentTextureID[PED_COMP_TEETH] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_TEETH, -1)
sOutfitsData.iComponentDrawableID[PED_COMP_SPECIAL] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_SPECIAL_1, -1) + GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_SPECIAL_2, -1)
sOutfitsData.iComponentTextureID[PED_COMP_SPECIAL] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_SPECIAL, -1)
sOutfitsData.iComponentDrawableID[PED_COMP_SPECIAL2] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_SPECIAL2, -1)
sOutfitsData.iComponentTextureID[PED_COMP_SPECIAL2] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_SPECIAL2, -1)
sOutfitsData.iComponentDrawableID[PED_COMP_DECL] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_DECL, -1)
sOutfitsData.iComponentTextureID[PED_COMP_DECL] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_DECL, -1)
sOutfitsData.iComponentDrawableID[PED_COMP_JBIB] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_JBIB_1, -1) + GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_JBIB_2, -1)
sOutfitsData.iComponentTextureID[PED_COMP_JBIB] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_JBIB, -1)
//remove any parachutes / bags
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = 0
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = 0
sOutfitsData.iPropDrawableID[0] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_0, -1)
sOutfitsData.iPropTextureID[0] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_0, -1)
sOutfitsData.iPropDrawableID[1] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_1, -1)
sOutfitsData.iPropTextureID[1] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_1, -1)
sOutfitsData.iPropDrawableID[2] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_2, -1)
sOutfitsData.iPropTextureID[2] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_2, -1)
sOutfitsData.iPropDrawableID[3] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_3, -1)
sOutfitsData.iPropTextureID[3] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_3, -1)
sOutfitsData.iPropDrawableID[4] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_4, -1)
sOutfitsData.iPropTextureID[4] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_4, -1)
sOutfitsData.iPropDrawableID[5] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_5, -1)
sOutfitsData.iPropTextureID[5] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_5, -1)
sOutfitsData.iPropDrawableID[6] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_6, -1)
sOutfitsData.iPropTextureID[6] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_6, -1)
sOutfitsData.iPropDrawableID[7] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_7, -1)
sOutfitsData.iPropTextureID[7] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_7, -1)
sOutfitsData.iPropDrawableID[8] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPINDX_8, -1)
sOutfitsData.iPropTextureID[8] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_PROPTEXT_8, -1)
//Set 0'd props to -1 if anchor doesn't contain any props
If sOutfitsData.iPropDrawableID[3] = 0
sOutfitsData.iPropDrawableID[3] = -1
endif
If sOutfitsData.iPropDrawableID[4] = 0
sOutfitsData.iPropDrawableID[4] = -1
endif
If sOutfitsData.iPropDrawableID[5] = 0
sOutfitsData.iPropDrawableID[5] = -1
endif
If sOutfitsData.iPropDrawableID[7] = 0
sOutfitsData.iPropDrawableID[7] = -1
endif
If sOutfitsData.iPropDrawableID[8] = 0
sOutfitsData.iPropDrawableID[8] = -1
endif
#IF USE_TU_CHANGES
if not IS_FAKE_MULTIPLAYER_MODE_SET()
TATTOO_NAME_ENUM eShirtDecal
eShirtDecal = GET_TATTOO_ENUM_FROM_DLC_HASH(GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH), GET_TATTOO_FACTION_FOR_PED(sApplyOutfitData.pedID))
IF eShirtDecal != INVALID_TATTOO
and IS_MP_TATTOO_CURRENT(eShirtDecal)
sOutfitsData.iDLCTattooOverlay[0] = GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH)
CPRINTLN(DEBUG_MISSION,"[GET_MP_OUTFIT_DATA] sOutfitsData.iDLCTattooOverlay[0] is being set to stat MP_STAT_TSHIRT_DECAL_HASH")
ENDIF
endif
#ENDIF
ENDIF
IF !bApplyMasks // remove all berds when we aren't applying mask items
sOutfitsData.iComponentDrawableID[COMP_TYPE_BERD] = 0
sOutfitsData.iComponentTextureID[COMP_TYPE_BERD] = 0
ENDIF
RETURN TRUE
ENDIF
MP_OUTFITS_DATA_REQUEST sRequest
sRequest.bMale = (GET_ENTITY_MODEL(sApplyOutfitData.pedID) = MP_M_FREEMODE_01)
sRequest.eOutfit = sApplyOutfitdata.eOutfit
IF GET_MP_OUTFIT_DATA_FROM_METADATA(sOutfitsData, sRequest)
//If not applying masks and no berd is being set by this outfit set masks to none.
IF !bApplyMasks
and( sOutfitsData.iComponentDrawableID[COMP_TYPE_BERD] = -1
or sOutfitsData.iComponentDrawableID[COMP_TYPE_SPECIAL] = GET_CHEMSUIT_HOOD_VARIATION(sApplyOutfitData.pedID,true)) //bug 2220687 chem suit check
sOutfitsData.iComponentDrawableID[COMP_TYPE_BERD] = 0
sOutfitsData.iComponentTextureID[COMP_TYPE_BERD] = 0
ENDIF
// New Adversary modes have colour specific masks. Require an override for url:bugstar:2596714
PROCESS_OUTFIT_OVERRIDDEN_MASKS(sApplyOutfitdata.eOutfit, sRequest.bMale, sOutfitsData.iComponentDrawableID[COMP_TYPE_BERD], sOutfitsData.iComponentTextureID[COMP_TYPE_BERD],
sOutfitsData.iPropDrawableID[ANCHOR_HEAD], sOutfitsData.iPropTextureID[ANCHOR_HEAD])
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL GET_MP_HEIST_MASK_DATA(MP_OUTFITS_DATA &sMainOutfitData, MP_OUTFITS_APPLY_DATA sApplyOutfitData, BOOL bOverwriteData = TRUE, BOOL bUseDefaultMask = TRUE)
MP_OUTFITS_DATA sOutfitsData
INT i
REPEAT NUM_PED_COMPONENTS i
sOutfitsData.iComponentDrawableID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sMainOutfitData.iPropDrawableID) i
sOutfitsData.iPropDrawableID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sMainOutfitData.iDLCTattooOverlay) i
sOutfitsData.iDLCTattooOverlay[i] = -1
ENDREPEAT
IF bOverwriteData
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]->GET_MP_HEIST_MASK_DATA overwritting outfit data")
REPEAT NUM_PED_COMPONENTS i
sMainOutfitData.iComponentDrawableID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sMainOutfitData.iPropDrawableID) i
sMainOutfitData.iPropDrawableID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sMainOutfitData.iDLCTattooOverlay) i
sMainOutfitData.iDLCTattooOverlay[i] = -1
ENDREPEAT
ENDIF
scrShopPedComponent componentItem
scrShopPedProp propItem
bool bMale = false
if GET_ENTITY_MODEL(sApplyOutfitData.pedID) = MP_M_FREEMODE_01
bMale = true
endif
SWITCH sApplyOutfitdata.eMask
case OUTFIT_MASK_NONE
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_FREEMODE
if sApplyOutfitdata.iPlayerIndex != -1
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = GlobalplayerBD_FM_HeistPlanning[sApplyOutfitdata.iPlayerIndex].iChosenMaskDrawID
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = GlobalplayerBD_FM_HeistPlanning[sApplyOutfitdata.iPlayerIndex].iChosenMaskTextID
else
//Get the slot of the owned outfit.
INT iOwnedOutfitSlot
iOwnedOutfitSlot = GET_LOCAL_PLAYER_OWNED_OUTFIT()
if iOwnedOutfitSlot != -1
//Grab the masks that are used for this outfit.
MP_OUTFITS_DATA tempOutfitData
GET_MP_OUTFIT_STORED_IN_SLOT(tempOutfitData,iOwnedOutfitSlot, TRUE)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = tempOutfitData.iComponentDrawableID[PED_COMP_BERD]
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = tempOutfitData.iComponentTextureID[PED_COMP_BERD]
CPRINTLN(DEBUG_MISSION,"[GET_MP_HEIST_MASK_DATA][MASK_FREEMODE] using mask data from slot:",iOwnedOutfitSlot)
ELSE
//No outfit needed use freemode
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_BERD_1, -1) + GET_PACKED_STAT_INT(PACKED_MP_CLTH_DRAWVAR_BERD_2, -1)
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = GET_PACKED_STAT_INT(PACKED_MP_CLTH_TEXTVAR_BERD, -1)
CPRINTLN(DEBUG_MISSION,"[GET_MP_HEIST_MASK_DATA][MASK_FREEMODE] using local stats for mask")
endif
IF bUseDefaultMask
//If no mask is being used from freemode force the balaclava(OUTFIT_MASK_AMATEUR_0)
if sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = -1
or sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
CPRINTLN(DEBUG_MISSION,"[GET_MP_HEIST_MASK_DATA][MASK_FREEMODE] using balaclava as no mask was grabbed from stats or outfit slots")
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
endif
ENDIF
endif
break
case OUTFIT_MASK_AMATEUR_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_AMATEUR_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_21_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_21_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_AMATEUR_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_AMATEUR_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_ANIMALS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_BERD_0_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_BERD_0_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_ANIMALS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_ANIMALS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_ANIMALS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_BERD_2_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_BERD_2_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_8
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_9
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_9), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_9), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_10
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_10), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_10), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_11
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_11), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_11), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_12
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_12), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_12), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_13
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_13), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_13), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_14
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_14), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_14), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_15
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_15), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_15), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_16
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_16), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_16), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_17
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_17), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_17), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_18
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_18), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_18), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_19
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_19), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_19), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_20
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_20), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_20), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_21
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_21), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_21), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_22
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_22), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_22), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_23
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_23), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_23), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_24
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_24), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_24), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PAPER_BAGS_25
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_14_25), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_14_25), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_BEASTS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD0_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD0_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_BEASTS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD0_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD0_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_BEASTS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD0_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD0_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_BEASTS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD0_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD0_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_CHARACTERS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_9_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_9_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_CHARACTERS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_8_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_8_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_CHARACTERS_2
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 3
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 3
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
ENDIF
break
case OUTFIT_MASK_CHARACTERS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_10_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_10_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_CLASSIC_MONSTERS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_CLASSIC_MONSTERS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_5_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_5_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_CLASSIC_MONSTERS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_6_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_6_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_CLASSIC_MONSTERS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_7_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_7_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_CARNIVAL_0
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 6
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 2
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 6
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 2
ENDIF
break
case OUTFIT_MASK_CARNIVAL_1
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 6
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 3
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 6
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 3
ENDIF
break
case OUTFIT_MASK_CARNIVAL_2
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 6
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 6
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
ENDIF
break
case OUTFIT_MASK_CARNIVAL_3
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 6
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 1
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 6
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 1
ENDIF
break
case OUTFIT_MASK_GAS_MASKS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_GAS_MASKS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_11_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_11_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_HELMETS_0
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_PHEAD_4_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ELSE//female
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_PHEAD_4_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_HELMETS_1
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_PHEAD_5_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ELSE//female
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_PHEAD_5_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_HELMETS_2
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_PHEAD_6_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ELSE//female
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_PHEAD_6_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_HELMETS_3
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_PHEAD_7_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ELSE//female
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_PHEAD_7_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_HELMETS_4
IF bMale
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 18 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 2
ELSE//female
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 18 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 2
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_HELMETS_5
IF bMale
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 18 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 4
ELSE//female
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 18 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 4
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_HELMETS_6
IF bMale
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 18 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 0
ELSE//female
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 18 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 0
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_HELMETS_7
IF bMale
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 18 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 5
ELSE//female
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 18 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 5
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 0
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
break
case OUTFIT_MASK_HORROR_HOCKEY_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_M_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_F_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_HORROR_HOCKEY_1
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 4 sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 4 sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
ENDIF
break
case OUTFIT_MASK_HORROR_HOCKEY_2
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 4 sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 2
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 4 sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 2
ENDIF
break
case OUTFIT_MASK_HORROR_HOCKEY_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD1_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD1_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PUPPETS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_15_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_15_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PUPPETS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_15_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_15_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PUPPETS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_15_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_15_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PUPPETS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_15_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_15_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_SKULLS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_SKULLS_1
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 2 sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 2 sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
ENDIF
break
case OUTFIT_MASK_SKULLS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_SKULLS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_M_BERD_1_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_F_BERD_1_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_TACTICAL_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_15_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_15_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_TACTICAL_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_M_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_F_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_TACTICAL_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_M_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_F_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_TACTICAL_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD2_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD2_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_TAPE_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_12_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_12_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_TAPE_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_12_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_12_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_TAPE_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_12_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_12_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_TAPE_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_12_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_12_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_THEATRICAL_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_M_BERD1_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_F_BERD1_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_THEATRICAL_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_15_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_15_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_THEATRICAL_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_15_9), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_15_9), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_THEATRICAL_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_M_BERD0_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_F_BERD0_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_PIGS_0
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 1 sOutfitsData.iComponentTextureID[PED_COMP_BERD ]= 0
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 1 sOutfitsData.iComponentTextureID[PED_COMP_BERD ]= 0
ENDIF
break
case OUTFIT_MASK_PIGS_1
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 1 sOutfitsData.iComponentTextureID[PED_COMP_BERD ]= 1
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 1 sOutfitsData.iComponentTextureID[PED_COMP_BERD ]= 1
ENDIF
break
case OUTFIT_MASK_PIGS_2
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 1 sOutfitsData.iComponentTextureID[PED_COMP_BERD ]= 2
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 1 sOutfitsData.iComponentTextureID[PED_COMP_BERD ]= 2
ENDIF
break
case OUTFIT_MASK_PIGS_3
IF bMale
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 1 sOutfitsData.iComponentTextureID[PED_COMP_BERD ]= 3
ELSE//female
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 1 sOutfitsData.iComponentTextureID[PED_COMP_BERD ]= 3
ENDIF
break
case OUTFIT_MASK_DUCT_TAPE_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_13_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_13_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_DUCT_TAPE_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_13_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_13_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_DUCT_TAPE_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_13_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_13_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
case OUTFIT_MASK_DUCT_TAPE_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_13_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_13_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
break
CASE OUTFIT_MASK_Incognito_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Incognito_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Incognito_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_10), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_10), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Incognito_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_0
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_22_18"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_22_18"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_1
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_22_19"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_22_19"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_2
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_22_20"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_22_20"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_3
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_22_17"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_22_17"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_5
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_22_21"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_22_21"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_6
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_23_1"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_23_1"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_7
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_23_3"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_23_3"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_8
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_23_7"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_23_7"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_9
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_23_4"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_23_4"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_10
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Balaclavas_11
IF bMale
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_M_BERD_23_9"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(HASH("DLC_MP_HEIST_F_BERD_23_9"), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Camo_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Camo_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Camo_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Camo_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_21_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_21_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Camo_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Camo_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_21_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_21_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Psychotic_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Psychotic_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_21_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_21_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Psychotic_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Psychotic_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD1_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD1_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Street_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Street_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Street_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Street_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_10), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_10), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Street_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Street_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Bandanas_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_16_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 4 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 1
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = 7 sOutfitsData.iPropTextureID[ANCHOR_EYES] = 0
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_16_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_EYES0_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_EYES] = propItem.m_textureIndex
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 4 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 0
ENDIF
BREAK
CASE OUTFIT_MASK_Bandanas_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_16_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_PHEAD_8_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = 7
sOutfitsData.iPropTextureID[ANCHOR_EYES] = 0
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_16_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_EYES0_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_EYES] = propItem.m_textureIndex
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_PHEAD_8_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Bandanas_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_16_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = 7 sOutfitsData.iPropTextureID[ANCHOR_EYES] = 0
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 4 sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 0
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_16_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_EYES0_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_EYES] = propItem.m_textureIndex
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 4
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 0
ENDIF
BREAK
CASE OUTFIT_MASK_Bandanas_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_16_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = 7
sOutfitsData.iPropTextureID[ANCHOR_EYES] = 0
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_PHEAD_8_1), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_16_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_EYES0_0), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_EYES] = propItem.m_textureIndex
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_PHEAD_8_1), propItem)
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = propItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Hoods_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_18_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_18_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Hoods_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_18_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_18_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Hoods_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_18_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_18_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Hoods_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_18_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_18_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Designer_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_15), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_15), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Designer_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_9), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_9), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Designer_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_14), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_14), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Designer_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_10), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_10), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Designer_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_12), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_12), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE OUTFIT_MASK_Designer_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_13), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_13), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Devilish_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_8_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_8_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Devilish_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_12_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_12_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Devilish_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_8_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_8_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Devilish_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_12_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_12_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Devilish_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_8_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_8_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Devilish_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_12_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_12_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Sadistic_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_9_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_9_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Sadistic_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_2_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_2_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Sadistic_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_9_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_9_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Sadistic_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Possessed_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_0_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_0_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Possessed_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_6_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_6_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Possessed_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_0_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_0_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Possessed_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_6_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_6_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Fiends_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Fiends_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Fiends_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_3_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_3_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Fiends_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_4_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_4_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Creatures_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Creatures_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_7_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_7_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Creatures_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_5_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_5_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Creatures_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_7_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_7_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Wicked_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_10_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_10_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Wicked_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_11_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_11_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Wicked_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_10_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_10_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_HEIST_HALLOWEEN_Wicked_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_M_BERD_11_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE//female
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HAL_F_BERD_11_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
endswitch
SWITCH sApplyOutfitdata.eMask
CASE MASK_CASINO_HEIST_DEFAULT_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_x17_F_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_DEFAULT_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_5_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_x17_F_BERD_5_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_11_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_11_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_12_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_12_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_12_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_12_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_12_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_12_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_13_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_13_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_16_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_16_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_16_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_16_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_16_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_16_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GEOMETRIC_8
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_16_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_16_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_7_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_7_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_8_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_8_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_8
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_10_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_10_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HUNTER_9
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_17_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_17_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIHALF_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_14_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_14_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIHALF_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_14_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_14_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIHALF_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_14_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_14_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIHALF_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_14_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_14_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIHALF_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_14_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_14_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIHALF_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_14_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_14_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_EMOJI_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_19_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_19_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_EMOJI_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_19_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_19_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_EMOJI_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_19_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_19_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_EMOJI_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_19_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_19_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_EMOJI_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_19_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_19_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_EMOJI_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_19_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_19_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_EMOJI_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_19_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_19_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_EMOJI_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_19_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_19_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_8_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_8_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_8_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_8_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_8_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_8_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_8_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_8_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_8_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_8_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ORNATE_SKULL_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_8_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_8_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_M_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_F_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_M_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_F_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_M_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_F_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_M_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_F_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_M_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_F_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_LUCKY_FRUITS_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_M_BERD_6_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VWD_F_BERD_6_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_16), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_16), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_20_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_20_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_21_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_21_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_9_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_9_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_GUERILLA_8
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_CLOWNS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_4_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_4_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_CLOWNS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_4_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_4_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_CLOWNS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_4_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_4_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_CLOWNS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_4_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_4_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_CLOWNS_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_4_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_4_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_CLOWNS_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_4_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_4_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_CLOWNS_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_4_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_4_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_CLOWNS_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_4_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ANIMALS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IND_M_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IND_F_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ANIMALS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_5_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ANIMALS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IND_M_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IND_F_BERD_2_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ANIMALS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_6_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_6_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ANIMALS_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IND_M_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IND_F_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ANIMALS_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IND_M_BERD_1_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IND_F_BERD_1_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ANIMALS_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_BERD_1_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ANIMALS_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_BERD_0_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_BERD_0_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_RIOT_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_RIOT_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_9_11), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_9_11), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_RIOT_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_7_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_7_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_RIOT_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_9_17), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_9_17), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_RIOT_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_3_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_3_6), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_RIOT_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_3_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_3_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_RIOT_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_7_19), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_7_19), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_RIOT_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_7_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_7_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIFULL_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_3_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIFULL_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_3_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_3_1), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIFULL_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_3_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_3_2), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIFULL_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_3_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_3_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIFULL_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_3_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_3_4), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_ONIFULL_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_3_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_3_5), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HOCKEY_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_9), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_9), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HOCKEY_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HOCKEY_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_13), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_13), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HOCKEY_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_14), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_14), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HOCKEY_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_16), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_16), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HOCKEY_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD0_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD0_8), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HOCKEY_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD0_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD0_7), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_CASINO_HEIST_HOCKEY_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_BERD1_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_BERD1_3), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
ENDIF
BREAK
ENDSWITCH
SWITCH sApplyOutfitdata.eMask
CASE MASK_ISLAND_HEIST_BRANDED_HALF_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_10_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_10_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_BRANDED_HALF_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_10_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_10_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_BRANDED_HALF_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_10_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_10_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_BRANDED_HALF_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_M_BERD_10_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_BERD_10_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_BRANDED_HALF_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_1_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_1_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_BRANDED_HALF_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_1_5), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_1_5), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_BRANDED_HALF_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_1_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_1_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_BRANDED_HALF_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_1_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_1_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PAINTED_FULL_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_3_4), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_3_4), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PAINTED_FULL_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_3_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_3_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PAINTED_FULL_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_3_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_3_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PAINTED_FULL_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_3_5), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_3_5), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PAINTED_FULL_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_3_7), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_3_7), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PAINTED_FULL_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_3_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_3_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_SPEC_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_0_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_0_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_SPEC_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_0_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_0_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_SPEC_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_0_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_0_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_SPEC_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_0_14), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_0_14), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_SPEC_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_0_20), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_0_20), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_SPEC_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_0_23), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_0_23), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_2_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_2_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_2_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_2_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_2_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_2_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_2_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_2_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_2_12), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_2_12), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_2_14), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_2_14), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_2_15), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_2_15), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NECK_GAITERS_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_M_BERD_2_17), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H4_F_BERD_2_17), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_FACE_WRAPS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_9_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_9_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_1), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_1), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_FACE_WRAPS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_BERD_9_3), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_BERD_9_3), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_5_3), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_5_3), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_FACE_WRAPS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_FACE_WRAPS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_19_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_19_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_FACE_WRAPS_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_21_3), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_21_3), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_FACE_WRAPS_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_21_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_21_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_OPS_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_OPS_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_20_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_20_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_OPS_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_21_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_21_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_OPS_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_22_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_22_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_VISION_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_HAIR_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAIR] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_HAIR_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAIR] = componentItem.m_textureIndex
ENDIF
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_VISION_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_SMUG_M_PHEAD_4_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_SMUG_F_PHEAD_4_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_VISION_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_17_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_17_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_M_PHEAD_10_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_H3_F_PHEAD_10_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ENUM_TO_INT(ANCHOR_HEAD)] = propItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_NIGHT_VISION_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_BERD_1_17), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_BERD_1_17), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_BERD_1_16), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_BERD_1_16), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_BERD_1_15), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_BERD_1_15), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_BERD_1_12), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_BERD_1_12), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_BERD_1_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_BERD_1_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_BERD_1_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_BERD_1_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_BERD_1_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_BERD_1_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_CAMO_HALF_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_BERD_1_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_BERD_1_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_19), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_19), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_17), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_17), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_15), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_15), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_14), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_14), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_13), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_13), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_MONO_NIGHT_VISION_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_11_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_11_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_8_23), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_8_23), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_8_22), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_8_22), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_8_21), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_8_21), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_8_20), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_8_20), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_8_19), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_8_19), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_8_18), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_8_18), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_8_16), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_8_16), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_ISLAND_GUERILLA_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_M_BERD_8_14), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_SMUG_F_BERD_8_14), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_0
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_16), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_16), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_15), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_15), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_9), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_9), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_7), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_7), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_ISLAND_HEIST_PATTERNED_HOCKEY_7
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_M_BERD_0_4), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BH_F_BERD_0_4), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
ENDSWITCH
SWITCH sApplyOutfitdata.eMask
CASE MASK_TUNER_STARS_AND_STRIPES_FALSE_FACE
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_7_9), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_7_9), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
CASE MASK_TUNER_GREEN_PATTERN_FALSE_FACE
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_BERD_7_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_BERD_7_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
BREAK
ENDSWITCH
bool bfoundMask = false
REPEAT NUM_PED_COMPONENTS i
if sOutfitsData.iComponentDrawableID[i] != -1
sMainOutfitData.iComponentDrawableID[i] = sOutfitsData.iComponentDrawableID[i]
sMainOutfitData.iComponentTextureID[i] = sOutfitsData.iComponentTextureID[i]
CPRINTLN(DEBUG_MISSION,"GET_MP_HEIST_MASK_DATA - found mask [", enum_to_INT(sApplyOutfitData.eMask),"] writting to compID: ", sOutfitsData.iComponentDrawableID[i]," textureID:",sOutfitsData.iComponentTextureID[i])
bfoundMask = true
endif
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iPropDrawableID) i
if sOutfitsData.iPropDrawableID[i] != -1
sMainOutfitData.iPropDrawableID[i] = sOutfitsData.iPropDrawableID[i]
sMainOutfitData.iPropTextureID[i] = sOutfitsData.iPropTextureID[i]
CPRINTLN(DEBUG_MISSION,"GET_MP_HEIST_MASK_DATA - found mask [", enum_to_INT(sApplyOutfitData.eMask),"] writting to iPropDrawableID: ", sOutfitsData.iPropDrawableID[i]," textureID:",sOutfitsData.iPropTextureID[i])
bfoundMask = true
endif
ENDREPEAT
IF bfoundMask
RETURN TRUE
ENDIF
#IF IS_DEBUG_BUILD
PRINTLN("GET_MP_HEIST_MASK_DATA - Enum missing tell Craig V. - ", enum_to_INT(sApplyOutfitData.eMask))
SCRIPT_ASSERT("GET_MP_HEIST_MASK_DATA - Enum missing tell Craig V.")
#ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL IS_MP_HEIST_MASK_EQUIPPED(PED_INDEX pedID, MP_OUTFIT_MASK_ENUM eMask)
MP_OUTFITS_DATA sOutfitsData
MP_OUTFITS_APPLY_DATA sApplyOutfitData
sApplyOutfitData.pedID = pedID
sApplyOutfitData.eMask = eMask
IF GET_MP_HEIST_MASK_DATA(sOutfitsData,sApplyOutfitData,true)
//check componants
int i
REPEAT NUM_PED_COMPONENTS i
if sOutfitsData.iComponentDrawableID[i] = GET_PED_DRAWABLE_VARIATION(pedID, int_to_enum(PED_COMPONENT,i))
and sOutfitsData.iComponentTextureID[i] = GET_PED_TEXTURE_VARIATION(pedID, int_to_enum(PED_COMPONENT,i))
CPRINTLN(DEBUG_MISSION,"IS_MP_HEIST_MASK_EQUIPPED - found mask [", enum_to_INT(sApplyOutfitData.eMask),"] compID: ", sOutfitsData.iComponentDrawableID[i]," textureID:",sOutfitsData.iComponentTextureID[i])
RETURN TRUE
endif
ENDREPEAT
//check props e.g. helmets
REPEAT COUNT_OF(sOutfitsData.iPropDrawableID) i
if sOutfitsData.iPropDrawableID[i] = GET_PED_PROP_INDEX(pedID, int_to_enum(PED_PROP_POSITION,i))
and sOutfitsData.iPropTextureID[i] = GET_PED_PROP_TEXTURE_INDEX(pedID,int_to_enum(PED_PROP_POSITION,i))
CPRINTLN(DEBUG_MISSION,"IS_MP_HEIST_MASK_EQUIPPED - found mask [", enum_to_INT(sApplyOutfitData.eMask),"] propID: ", sOutfitsData.iPropDrawableID[i]," textureID:",sOutfitsData.iPropTextureID[i])
RETURN TRUE
endif
ENDREPEAT
ENDIF
CPRINTLN(DEBUG_MISSION,"IS_MP_HEIST_MASK_EQUIPPED - not wearing mask [", enum_to_INT(sApplyOutfitData.eMask))
RETURN FALSE
ENDFUNC
// -------- MP Character Creator Outfits
ENUM CHARACTER_CREATOR_OUTFIT
CC_OUTFIT_STREET_0,
CC_OUTFIT_STREET_1,
CC_OUTFIT_STREET_2,
CC_OUTFIT_STREET_3,
CC_OUTFIT_STREET_4,
CC_OUTFIT_STREET_5,
CC_OUTFIT_STREET_6,
CC_OUTFIT_STREET_7,
CC_OUTFIT_FLASHY_0,
CC_OUTFIT_FLASHY_1,
CC_OUTFIT_FLASHY_2,
CC_OUTFIT_FLASHY_3,
CC_OUTFIT_FLASHY_4,
CC_OUTFIT_FLASHY_5,
CC_OUTFIT_FLASHY_6,
CC_OUTFIT_FLASHY_7,
CC_OUTFIT_PARTY_0,
CC_OUTFIT_PARTY_1,
CC_OUTFIT_PARTY_2,
CC_OUTFIT_PARTY_3,
CC_OUTFIT_PARTY_4,
CC_OUTFIT_PARTY_5,
CC_OUTFIT_PARTY_6,
CC_OUTFIT_PARTY_7,
CC_OUTFIT_BEACH_0,
CC_OUTFIT_BEACH_1,
CC_OUTFIT_BEACH_2,
CC_OUTFIT_BEACH_3,
CC_OUTFIT_BEACH_4,
CC_OUTFIT_BEACH_5,
CC_OUTFIT_BEACH_6,
CC_OUTFIT_BEACH_7,
CC_OUTFIT_SMART_0,
CC_OUTFIT_SMART_1,
CC_OUTFIT_SMART_2,
CC_OUTFIT_SMART_3,
CC_OUTFIT_SMART_4,
CC_OUTFIT_SMART_5,
CC_OUTFIT_SMART_6,
CC_OUTFIT_SMART_7,
CC_OUTFIT_SPORTY_0,
CC_OUTFIT_SPORTY_1,
CC_OUTFIT_SPORTY_2,
CC_OUTFIT_SPORTY_3,
CC_OUTFIT_SPORTY_4,
CC_OUTFIT_SPORTY_5,
CC_OUTFIT_SPORTY_6,
CC_OUTFIT_SPORTY_7,
CC_OUTFIT_ECCENTRIC_0,
CC_OUTFIT_ECCENTRIC_1,
CC_OUTFIT_ECCENTRIC_2,
CC_OUTFIT_ECCENTRIC_3,
CC_OUTFIT_ECCENTRIC_4,
CC_OUTFIT_ECCENTRIC_5,
CC_OUTFIT_ECCENTRIC_6,
CC_OUTFIT_ECCENTRIC_7,
CC_OUTFIT_CASUAL_0,
CC_OUTFIT_CASUAL_1,
CC_OUTFIT_CASUAL_2,
CC_OUTFIT_CASUAL_3,
CC_OUTFIT_CASUAL_4,
CC_OUTFIT_CASUAL_5,
CC_OUTFIT_CASUAL_6,
CC_OUTFIT_CASUAL_7
#IF FEATURE_GEN9_STANDALONE
,CC_OUTFIT_EXECUTIVE_0
,CC_OUTFIT_EXECUTIVE_1
,CC_OUTFIT_EXECUTIVE_2
,CC_OUTFIT_GUNRUNNER_0
,CC_OUTFIT_GUNRUNNER_1
,CC_OUTFIT_GUNRUNNER_2
,CC_OUTFIT_NIGHTCLUB_0
,CC_OUTFIT_NIGHTCLUB_1
,CC_OUTFIT_NIGHTCLUB_2
,CC_OUTFIT_BIKER_0
,CC_OUTFIT_BIKER_1
,CC_OUTFIT_BIKER_2
#ENDIF
ENDENUM
FUNC INT GET_HASH_FOR_CHARACTER_CREATOR_OUTFIT(CHARACTER_CREATOR_OUTFIT outfit)
SWITCH outfit
CASE CC_OUTFIT_STREET_0 RETURN HASH("CC_OUTFIT_STREET_0")
CASE CC_OUTFIT_STREET_1 RETURN HASH("CC_OUTFIT_STREET_1")
CASE CC_OUTFIT_STREET_2 RETURN HASH("CC_OUTFIT_STREET_2")
CASE CC_OUTFIT_STREET_3 RETURN HASH("CC_OUTFIT_STREET_3")
CASE CC_OUTFIT_STREET_4 RETURN HASH("CC_OUTFIT_STREET_4")
CASE CC_OUTFIT_STREET_5 RETURN HASH("CC_OUTFIT_STREET_5")
CASE CC_OUTFIT_STREET_6 RETURN HASH("CC_OUTFIT_STREET_6")
CASE CC_OUTFIT_STREET_7 RETURN HASH("CC_OUTFIT_STREET_7")
CASE CC_OUTFIT_FLASHY_0 RETURN HASH("CC_OUTFIT_FLASHY_0")
CASE CC_OUTFIT_FLASHY_1 RETURN HASH("CC_OUTFIT_FLASHY_1")
CASE CC_OUTFIT_FLASHY_2 RETURN HASH("CC_OUTFIT_FLASHY_2")
CASE CC_OUTFIT_FLASHY_3 RETURN HASH("CC_OUTFIT_FLASHY_3")
CASE CC_OUTFIT_FLASHY_4 RETURN HASH("CC_OUTFIT_FLASHY_4")
CASE CC_OUTFIT_FLASHY_5 RETURN HASH("CC_OUTFIT_FLASHY_5")
CASE CC_OUTFIT_FLASHY_6 RETURN HASH("CC_OUTFIT_FLASHY_6")
CASE CC_OUTFIT_FLASHY_7 RETURN HASH("CC_OUTFIT_FLASHY_7")
CASE CC_OUTFIT_PARTY_0 RETURN HASH("CC_OUTFIT_PARTY_0")
CASE CC_OUTFIT_PARTY_1 RETURN HASH("CC_OUTFIT_PARTY_1")
CASE CC_OUTFIT_PARTY_2 RETURN HASH("CC_OUTFIT_PARTY_2")
CASE CC_OUTFIT_PARTY_3 RETURN HASH("CC_OUTFIT_PARTY_3")
CASE CC_OUTFIT_PARTY_4 RETURN HASH("CC_OUTFIT_PARTY_4")
CASE CC_OUTFIT_PARTY_5 RETURN HASH("CC_OUTFIT_PARTY_5")
CASE CC_OUTFIT_PARTY_6 RETURN HASH("CC_OUTFIT_PARTY_6")
CASE CC_OUTFIT_PARTY_7 RETURN HASH("CC_OUTFIT_PARTY_7")
CASE CC_OUTFIT_BEACH_0 RETURN HASH("CC_OUTFIT_BEACH_0")
CASE CC_OUTFIT_BEACH_1 RETURN HASH("CC_OUTFIT_BEACH_1")
CASE CC_OUTFIT_BEACH_2 RETURN HASH("CC_OUTFIT_BEACH_2")
CASE CC_OUTFIT_BEACH_3 RETURN HASH("CC_OUTFIT_BEACH_3")
CASE CC_OUTFIT_BEACH_4 RETURN HASH("CC_OUTFIT_BEACH_4")
CASE CC_OUTFIT_BEACH_5 RETURN HASH("CC_OUTFIT_BEACH_5")
CASE CC_OUTFIT_BEACH_6 RETURN HASH("CC_OUTFIT_BEACH_6")
CASE CC_OUTFIT_BEACH_7 RETURN HASH("CC_OUTFIT_BEACH_7")
CASE CC_OUTFIT_SMART_0 RETURN HASH("CC_OUTFIT_SMART_0")
CASE CC_OUTFIT_SMART_1 RETURN HASH("CC_OUTFIT_SMART_1")
CASE CC_OUTFIT_SMART_2 RETURN HASH("CC_OUTFIT_SMART_2")
CASE CC_OUTFIT_SMART_3 RETURN HASH("CC_OUTFIT_SMART_3")
CASE CC_OUTFIT_SMART_4 RETURN HASH("CC_OUTFIT_SMART_4")
CASE CC_OUTFIT_SMART_5 RETURN HASH("CC_OUTFIT_SMART_5")
CASE CC_OUTFIT_SMART_6 RETURN HASH("CC_OUTFIT_SMART_6")
CASE CC_OUTFIT_SMART_7 RETURN HASH("CC_OUTFIT_SMART_7")
CASE CC_OUTFIT_SPORTY_0 RETURN HASH("CC_OUTFIT_SPORTY_0")
CASE CC_OUTFIT_SPORTY_1 RETURN HASH("CC_OUTFIT_SPORTY_1")
CASE CC_OUTFIT_SPORTY_2 RETURN HASH("CC_OUTFIT_SPORTY_2")
CASE CC_OUTFIT_SPORTY_3 RETURN HASH("CC_OUTFIT_SPORTY_3")
CASE CC_OUTFIT_SPORTY_4 RETURN HASH("CC_OUTFIT_SPORTY_4")
CASE CC_OUTFIT_SPORTY_5 RETURN HASH("CC_OUTFIT_SPORTY_5")
CASE CC_OUTFIT_SPORTY_6 RETURN HASH("CC_OUTFIT_SPORTY_6")
CASE CC_OUTFIT_SPORTY_7 RETURN HASH("CC_OUTFIT_SPORTY_7")
CASE CC_OUTFIT_ECCENTRIC_0 RETURN HASH("CC_OUTFIT_ECCENTRIC_0")
CASE CC_OUTFIT_ECCENTRIC_1 RETURN HASH("CC_OUTFIT_ECCENTRIC_1")
CASE CC_OUTFIT_ECCENTRIC_2 RETURN HASH("CC_OUTFIT_ECCENTRIC_2")
CASE CC_OUTFIT_ECCENTRIC_3 RETURN HASH("CC_OUTFIT_ECCENTRIC_3")
CASE CC_OUTFIT_ECCENTRIC_4 RETURN HASH("CC_OUTFIT_ECCENTRIC_4")
CASE CC_OUTFIT_ECCENTRIC_5 RETURN HASH("CC_OUTFIT_ECCENTRIC_5")
CASE CC_OUTFIT_ECCENTRIC_6 RETURN HASH("CC_OUTFIT_ECCENTRIC_6")
CASE CC_OUTFIT_ECCENTRIC_7 RETURN HASH("CC_OUTFIT_ECCENTRIC_7")
CASE CC_OUTFIT_CASUAL_0 RETURN HASH("CC_OUTFIT_CASUAL_0")
CASE CC_OUTFIT_CASUAL_1 RETURN HASH("CC_OUTFIT_CASUAL_1")
CASE CC_OUTFIT_CASUAL_2 RETURN HASH("CC_OUTFIT_CASUAL_2")
CASE CC_OUTFIT_CASUAL_3 RETURN HASH("CC_OUTFIT_CASUAL_3")
CASE CC_OUTFIT_CASUAL_4 RETURN HASH("CC_OUTFIT_CASUAL_4")
CASE CC_OUTFIT_CASUAL_5 RETURN HASH("CC_OUTFIT_CASUAL_5")
CASE CC_OUTFIT_CASUAL_6 RETURN HASH("CC_OUTFIT_CASUAL_6")
CASE CC_OUTFIT_CASUAL_7 RETURN HASH("CC_OUTFIT_CASUAL_7")
#IF FEATURE_GEN9_STANDALONE
CASE CC_OUTFIT_EXECUTIVE_0 RETURN HASH("CC_OUTFIT_EXECUTIVE_0")
CASE CC_OUTFIT_EXECUTIVE_1 RETURN HASH("CC_OUTFIT_EXECUTIVE_1")
CASE CC_OUTFIT_EXECUTIVE_2 RETURN HASH("CC_OUTFIT_EXECUTIVE_2")
CASE CC_OUTFIT_GUNRUNNER_0 RETURN HASH("CC_OUTFIT_GUNRUNNER_0")
CASE CC_OUTFIT_GUNRUNNER_1 RETURN HASH("CC_OUTFIT_GUNRUNNER_1")
CASE CC_OUTFIT_GUNRUNNER_2 RETURN HASH("CC_OUTFIT_GUNRUNNER_2")
CASE CC_OUTFIT_NIGHTCLUB_0 RETURN HASH("CC_OUTFIT_NIGHTCLUB_0")
CASE CC_OUTFIT_NIGHTCLUB_1 RETURN HASH("CC_OUTFIT_NIGHTCLUB_1")
CASE CC_OUTFIT_NIGHTCLUB_2 RETURN HASH("CC_OUTFIT_NIGHTCLUB_2")
CASE CC_OUTFIT_BIKER_0 RETURN HASH("CC_OUTFIT_BIKER_0")
CASE CC_OUTFIT_BIKER_1 RETURN HASH("CC_OUTFIT_BIKER_1")
CASE CC_OUTFIT_BIKER_2 RETURN HASH("CC_OUTFIT_BIKER_2")
#ENDIF
ENDSWITCH
ASSERTLN("Unexpected CHARACTER_CREATOR_OUTFIT ", ENUM_TO_INT(outfit))
RETURN 0
ENDFUNC
STRUCT MP_CHARACTER_CREATOR_OUTFIT
INT iComponentDrawableID[NUM_PED_COMPONENTS]
INT iComponentTextureID[NUM_PED_COMPONENTS]
TATTOO_NAME_ENUM aTattoo
ENDSTRUCT
STRUCT MP_CHARACTER_CREATOR_PROP
INT iPropDrawableID
INT iPropTextureID
ENDSTRUCT
/// PURPOSE: Returns the name of the creator outfit
FUNC STRING GET_CHARACTER_CREATOR_OUTFIT_NAME(CHARACTER_CREATOR_OUTFIT eOutfit, BOOL bIsMale)
SWITCH eOutfit
CASE CC_OUTFIT_STREET_0
IF bIsMale
RETURN "FACE_O_M_STR0"
ELSE
RETURN "FACE_O_F_STR0"
ENDIF
BREAK
CASE CC_OUTFIT_STREET_1
IF bIsMale
RETURN "FACE_O_M_STR1"
ELSE
RETURN "FACE_O_F_STR1"
ENDIF
BREAK
CASE CC_OUTFIT_STREET_2
IF bIsMale
RETURN "FACE_O_M_STR2"
ELSE
RETURN "FACE_O_F_STR2"
ENDIF
BREAK
CASE CC_OUTFIT_STREET_3
IF bIsMale
RETURN "FACE_O_M_STR3"
ELSE
RETURN "FACE_O_F_STR3"
ENDIF
BREAK
CASE CC_OUTFIT_STREET_4
IF bIsMale
RETURN "FACE_O_M_STR4"
ELSE
RETURN "FACE_O_F_STR4"
ENDIF
BREAK
CASE CC_OUTFIT_STREET_5
IF bIsMale
RETURN "FACE_O_M_STR5"
ELSE
RETURN "FACE_O_F_STR5"
ENDIF
BREAK
CASE CC_OUTFIT_STREET_6
IF bIsMale
RETURN "FACE_O_M_STR6"
ELSE
RETURN "FACE_O_F_STR6"
ENDIF
BREAK
CASE CC_OUTFIT_STREET_7
IF bIsMale
RETURN "FACE_O_M_STR7"
ELSE
RETURN "FACE_O_F_STR7"
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_0
IF bIsMale
RETURN "FACE_O_M_FLS0"
ELSE
RETURN "FACE_O_F_FLS0"
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_1
IF bIsMale
RETURN "FACE_O_M_FLS1"
ELSE
RETURN "FACE_O_F_FLS1"
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_2
IF bIsMale
RETURN "FACE_O_M_FLS2"
ELSE
RETURN "FACE_O_F_FLS2"
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_3
IF bIsMale
RETURN "FACE_O_M_FLS3"
ELSE
RETURN "FACE_O_F_FLS3"
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_4
IF bIsMale
RETURN "FACE_O_M_FLS4"
ELSE
RETURN "FACE_O_F_FLS4"
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_5
IF bIsMale
RETURN "FACE_O_M_FLS5"
ELSE
RETURN "FACE_O_F_FLS5"
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_6
IF bIsMale
RETURN "FACE_O_M_FLS7"
ELSE
RETURN "FACE_O_F_FLS6"
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_7
IF bIsMale
RETURN "FACE_O_M_FLS6"
ELSE
RETURN "FACE_O_F_FLS7"
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_0
IF bIsMale
RETURN "FACE_O_M_PAR0"
ELSE
RETURN "FACE_O_F_PAR0"
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_1
IF bIsMale
RETURN "FACE_O_M_PAR1"
ELSE
RETURN "FACE_O_F_PAR1"
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_2
IF bIsMale
RETURN "FACE_O_M_PAR2"
ELSE
RETURN "FACE_O_F_PAR2"
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_3
IF bIsMale
RETURN "FACE_O_M_PAR3"
ELSE
RETURN "FACE_O_F_PAR3"
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_4
IF bIsMale
RETURN "FACE_O_M_PAR4"
ELSE
RETURN "FACE_O_F_PAR4"
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_5
IF bIsMale
RETURN "FACE_O_M_PAR5"
ELSE
RETURN "FACE_O_F_PAR5"
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_6
IF bIsMale
RETURN "FACE_O_M_PAR6"
ELSE
RETURN "FACE_O_F_PAR6"
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_7
IF bIsMale
RETURN "FACE_O_M_PAR7"
ELSE
RETURN "FACE_O_F_PAR7"
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_0
IF bIsMale
RETURN "FACE_O_M_BEA0"
ELSE
RETURN "FACE_O_F_BEA0"
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_1
IF bIsMale
RETURN "FACE_O_M_BEA1"
ELSE
RETURN "FACE_O_F_BEA1"
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_2
IF bIsMale
RETURN "FACE_O_M_BEA2"
ELSE
RETURN "FACE_O_F_BEA2"
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_3
IF bIsMale
RETURN "FACE_O_M_BEA3"
ELSE
RETURN "FACE_O_F_BEA3"
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_4
IF bIsMale
RETURN "FACE_O_M_BEA4"
ELSE
RETURN "FACE_O_F_BEA4"
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_5
IF bIsMale
RETURN "FACE_O_M_BEA5"
ELSE
RETURN "FACE_O_F_BEA5"
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_6
IF bIsMale
RETURN "FACE_O_M_BEA6"
ELSE
RETURN "FACE_O_F_BEA6"
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_7
IF bIsMale
RETURN "FACE_O_M_BEA7"
ELSE
RETURN "FACE_O_F_BEA7"
ENDIF
BREAK
CASE CC_OUTFIT_SMART_0
IF bIsMale
RETURN "FACE_O_M_SMA0"
ELSE
RETURN "FACE_O_F_SMA0"
ENDIF
BREAK
CASE CC_OUTFIT_SMART_1
IF bIsMale
RETURN "FACE_O_M_SMA1"
ELSE
RETURN "FACE_O_F_SMA1"
ENDIF
BREAK
CASE CC_OUTFIT_SMART_2
IF bIsMale
RETURN "FACE_O_M_SMA2"
ELSE
RETURN "FACE_O_F_SMA2"
ENDIF
BREAK
CASE CC_OUTFIT_SMART_3
IF bIsMale
RETURN "FACE_O_M_SMA3"
ELSE
RETURN "FACE_O_F_SMA3"
ENDIF
BREAK
CASE CC_OUTFIT_SMART_4
IF bIsMale
RETURN "FACE_O_M_SMA4"
ELSE
RETURN "FACE_O_F_SMA4"
ENDIF
BREAK
CASE CC_OUTFIT_SMART_5
IF bIsMale
RETURN "FACE_O_M_SMA5"
ELSE
RETURN "FACE_O_F_SMA5"
ENDIF
BREAK
CASE CC_OUTFIT_SMART_6
IF bIsMale
RETURN "FACE_O_M_SMA6"
ELSE
RETURN "FACE_O_F_SMA6"
ENDIF
BREAK
CASE CC_OUTFIT_SMART_7
IF bIsMale
RETURN "FACE_O_M_SMA7"
ELSE
RETURN "FACE_O_F_SMA7"
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_0
IF bIsMale
RETURN "FACE_O_M_SPO0"
ELSE
RETURN "FACE_O_F_SPO0"
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_1
IF bIsMale
RETURN "FACE_O_M_SPO1"
ELSE
RETURN "FACE_O_F_SPO1"
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_2
IF bIsMale
RETURN "FACE_O_M_SPO2"
ELSE
RETURN "FACE_O_F_SPO2"
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_3
IF bIsMale
RETURN "FACE_O_M_SPO3"
ELSE
RETURN "FACE_O_F_SPO3"
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_4
IF bIsMale
RETURN "FACE_O_M_SPO4"
ELSE
RETURN "FACE_O_F_SPO4"
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_5
IF bIsMale
RETURN "FACE_O_M_SPO5"
ELSE
RETURN "FACE_O_F_SPO5"
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_6
IF bIsMale
RETURN "FACE_O_M_SPO6"
ELSE
RETURN "FACE_O_F_SPO6"
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_7
IF bIsMale
RETURN "FACE_O_M_SPO7"
ELSE
RETURN "FACE_O_F_SPO7"
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_0
IF bIsMale
RETURN "FACE_O_M_ECC0"
ELSE
RETURN "FACE_O_F_ECC0"
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_1
IF bIsMale
RETURN "FACE_O_M_ECC1"
ELSE
RETURN "FACE_O_F_ECC1"
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_2
IF bIsMale
RETURN "FACE_O_M_ECC2"
ELSE
RETURN "FACE_O_F_ECC2"
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_3
IF bIsMale
RETURN "FACE_O_M_ECC3"
ELSE
RETURN "FACE_O_F_ECC3"
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_4
IF bIsMale
RETURN "FACE_O_M_ECC4"
ELSE
RETURN "FACE_O_F_ECC4"
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_5
IF bIsMale
RETURN "FACE_O_M_ECC5"
ELSE
RETURN "FACE_O_F_ECC5"
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_6
IF bIsMale
RETURN "FACE_O_M_ECC6"
ELSE
RETURN "FACE_O_F_ECC6"
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_7
IF bIsMale
RETURN "FACE_O_M_ECC7"
ELSE
RETURN "FACE_O_F_ECC7"
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_0
IF bIsMale
RETURN "FACE_O_M_CAS0"
ELSE
RETURN "FACE_O_F_CAS0"
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_1
IF bIsMale
RETURN "FACE_O_M_CAS1"
ELSE
RETURN "FACE_O_F_CAS1"
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_2
IF bIsMale
RETURN "FACE_O_M_CAS2"
ELSE
RETURN "FACE_O_F_CAS2"
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_3
IF bIsMale
RETURN "FACE_O_M_CAS3"
ELSE
RETURN "FACE_O_F_CAS4"
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_4
IF bIsMale
RETURN "FACE_O_M_CAS4"
ELSE
RETURN "FACE_O_F_CAS3"
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_5
IF bIsMale
RETURN "FACE_O_M_CAS5"
ELSE
RETURN "FACE_O_F_CAS5"
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_6
IF bIsMale
RETURN "FACE_O_M_CAS6"
ELSE
RETURN "FACE_O_F_CAS6"
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_7
IF bIsMale
RETURN "FACE_O_M_CAS7"
ELSE
RETURN "FACE_O_F_CAS7"
ENDIF
BREAK
#IF FEATURE_GEN9_STANDALONE
CASE CC_OUTFIT_EXECUTIVE_0
IF bIsMale
RETURN "CLO_BUS_M_O_12"
ELSE
RETURN "CLO_BUS_F_O_16"
ENDIF
BREAK
CASE CC_OUTFIT_EXECUTIVE_1
IF bIsMale
RETURN "CLO_HILF_O_7"
ELSE
RETURN "CLO_BUS_F_O_6"
ENDIF
BREAK
CASE CC_OUTFIT_EXECUTIVE_2
IF bIsMale
RETURN "CLO_EXM_OB_14"
ELSE
RETURN "CLO_EXF_OB_8"
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_0
IF bIsMale
RETURN "CLO_GRM_O_7"
ELSE
RETURN "CLO_GRF_O_7"
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_1
IF bIsMale
RETURN "CLO_GRM_O_4"
ELSE
RETURN "CLO_GRF_O_4"
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_2
IF bIsMale
RETURN "CLO_GRM_O_2"
ELSE
RETURN "CLO_GRF_O_2"
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_0
IF bIsMale
RETURN "CLO_BUS_M_O_1"
ELSE
RETURN "CLO_HP_F_O_5"
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_1
IF bIsMale
RETURN "O_FMM_P8"
ELSE
RETURN "CLO_HP_F_O_7"
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_2
IF bIsMale
RETURN "O_FMM_P5"
ELSE
RETURN "O_FMF_S8"
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_0
IF bIsMale
RETURN "CLO_BIM_O_17"
ELSE
RETURN "CLO_BIF_O_15"
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_1
IF bIsMale
RETURN "CLO_BIM_O_16"
ELSE
RETURN "CLO_BIF_O_16"
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_2
IF bIsMale
RETURN "CLO_BIM_O_14"
ELSE
RETURN "CLO_BIF_O_14"
ENDIF
BREAK
#ENDIF
ENDSWITCH
RETURN ""
ENDFUNC
FUNC INT GET_CHARACTER_CREATOR_OUTFIT_HASH(CHARACTER_CREATOR_OUTFIT eOutfit, BOOL bIsMale)
UNUSED_PARAMETER(eOutfit)
UNUSED_PARAMETER(bIsMale)
#IF FEATURE_GEN9_STANDALONE
SWITCH eOutfit
CASE CC_OUTFIT_EXECUTIVE_0
IF bIsMale
RETURN HASH("DLC_MP_BUSI_M_OUTFIT_12")
ELSE
RETURN HASH("DLC_MP_BUSI_F_OUTFIT_16")
ENDIF
BREAK
CASE CC_OUTFIT_EXECUTIVE_1
IF bIsMale
RETURN HASH("DLC_MP_BUSI2_M_OUTFIT_7")
ELSE
RETURN HASH("DLC_MP_BUSI_F_OUTFIT_6")
ENDIF
BREAK
CASE CC_OUTFIT_EXECUTIVE_2
IF bIsMale
RETURN HASH("DLC_MP_EXEC_M_OUTFIT_14")
ELSE
RETURN HASH("DLC_MP_EXEC_F_OUTFIT_8")
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_0
IF bIsMale
RETURN HASH("DLC_MP_GR_M_OUTFIT_7")
ELSE
RETURN HASH("DLC_MP_GR_F_OUTFIT_7")
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_1
IF bIsMale
RETURN HASH("DLC_MP_GR_M_OUTFIT_4")
ELSE
RETURN HASH("DLC_MP_GR_F_OUTFIT_4")
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_2
IF bIsMale
RETURN HASH("DLC_MP_GR_M_OUTFIT_2")
ELSE
RETURN HASH("DLC_MP_GR_F_OUTFIT_2")
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_0
IF bIsMale
RETURN HASH("DLC_MP_BUSI_M_OUTFIT_1")
ELSE
RETURN HASH("DLC_MP_HIPS_F_OUTFIT_5")
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_1
IF bIsMale
// Standard Outfit, no DLC hash
ELSE
RETURN HASH("DLC_MP_HIPS_F_OUTFIT_7")
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_2
IF bIsMale
// Standard Outfit, no DLC hash
ELSE
// Standard Outfit, no DLC hash
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_0
IF bIsMale
RETURN HASH("DLC_MP_BIKER_M_OUTFIT_17")
ELSE
RETURN HASH("DLC_MP_BIKER_F_OUTFIT_15")
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_1
IF bIsMale
RETURN HASH("DLC_MP_BIKER_M_OUTFIT_16")
ELSE
RETURN HASH("DLC_MP_BIKER_F_OUTFIT_16")
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_2
IF bIsMale
RETURN HASH("DLC_MP_BIKER_M_OUTFIT_14")
ELSE
RETURN HASH("DLC_MP_BIKER_F_OUTFIT_14")
ENDIF
BREAK
ENDSWITCH
#ENDIF
RETURN -1
ENDFUNC
PROC GET_CHARACTER_CREATOR_OUTFIT(MODEL_NAMES ePedModel, CHARACTER_CREATOR_OUTFIT eOutfit, MP_CHARACTER_CREATOR_OUTFIT &sCharacterOutfitData)
INT i
REPEAT NUM_PED_COMPONENTS i
sCharacterOutfitData.iComponentDrawableID[i] = -1
ENDREPEAT
sCharacterOutfitData.aTattoo = INVALID_TATTOO
scrShopPedComponent componentItem
SWITCH eOutfit
// Casual
CASE CC_OUTFIT_CASUAL_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 6
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 10
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 9
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 12
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 9
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 9
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 11
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 14
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 6
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 10
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 5
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 15
sCharacterOutfitData.aTattoo = TATTOO_MP_FM_MTD_14
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 11
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_FEET001), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 10
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_3
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 2
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 13
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 5
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_4
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 14
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB8_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 7
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_FEET011), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 15
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_5
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB5_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_FEET006), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 11
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_6
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 3
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_LOWR4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 5
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 11
ENDIF
BREAK
CASE CC_OUTFIT_CASUAL_7
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 5
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_TEETH1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 7
ENDIF
BREAK
// Street
CASE CC_OUTFIT_STREET_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 9
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 12
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_TEETH1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 2
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 10
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 6
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_F_JBIB_1_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_STREET_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 1
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_STREET_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_TEETH1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 1
ENDIF
BREAK
CASE CC_OUTFIT_STREET_3
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 4
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_TEETH1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 9
ENDIF
BREAK
CASE CC_OUTFIT_STREET_4
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 12
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 12
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_TEETH1_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 12
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 12
ENDIF
BREAK
CASE CC_OUTFIT_STREET_5
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 12
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 1
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ENDIF
BREAK
CASE CC_OUTFIT_STREET_6
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_TEETH1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 2
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 14
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_STREET_7
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 7
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LTS_F_LEGS_0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_PILOT_F_FEET_0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 14
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_LEGS0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_ACCS0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_JBIB2_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 4
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB4_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB1_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 6
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET1_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB0_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_3
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI2_M_LEGS0_0)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI2_M_ACCS1_0)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI2_M_JBIB0_0)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_ACCS0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB0_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_4
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 14
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 6
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 11
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_5
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_LEGS0_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_ACCS1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_JBIB0_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS1_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB1_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_6
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 12
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 7
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 1
ENDIF
BREAK
CASE CC_OUTFIT_FLASHY_7
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI2_M_LEGS0_0)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI2_M_TEETH1_2)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI2_M_ACCS4_1)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI2_M_JBIB1_0)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 10
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET0_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB9_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_FEET1_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_TEETH0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_ACCS1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB0_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_11), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET0_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_ACCS1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB2_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
sCharacterOutfitData.aTattoo = TATTOO_MP_FM_MTD_46
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 11
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 14
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS1_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 9
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_M_JBIB2_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
sCharacterOutfitData.aTattoo = GET_TATTOO_ENUM_FROM_DLC_HASH(HASH("FM_Hip_M_Tshirt_019"), TATTOO_MP_FM)
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_FEET1_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_TEETH0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUS2_F_ACCS0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
sCharacterOutfitData.aTattoo = GET_TATTOO_ENUM_FROM_DLC_HASH(HASH("FM_Hip_F_Tshirt_008"), TATTOO_MP_FM_F)
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_3
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET1_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_ACCS6_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB2_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 7
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_4
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_TEETH0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB5_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 10
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_ACCS1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB3_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_5
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_ACCS1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB2_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_11), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_FEET1_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_TEETH0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_ACCS1_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB4_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_6
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB11_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
sCharacterOutfitData.aTattoo = GET_TATTOO_ENUM_FROM_DLC_HASH(HASH("FM_Hip_M_Tshirt_022"), TATTOO_MP_FM)
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_ACCS1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB0_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_PARTY_7
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET0_11), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_M_ACCS2_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB2_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
sCharacterOutfitData.aTattoo = GET_TATTOO_ENUM_FROM_DLC_HASH(HASH("FM_Hip_M_Tshirt_000"), TATTOO_MP_FM)
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 7
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET1_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB2_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_FEET0_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_JBIB1_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_FEET009), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_JBIB2_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_LOWR2_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_LOWR0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_TEETH0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_JBIB1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_LOWR0_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_FEET0_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_JBIB1_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_LOWR107), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_FEET008), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH1_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB5_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_3
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_LOWR2_11), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 14
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 13
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_JBIB2_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_4
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_LOWR0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_FEET0_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_TEETH1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_JBIB1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 5
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 3
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_5
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_LOWR2_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_FEET0_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 7
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_LOWR8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_FEET001), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_JBIB2_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_6
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_LOWR0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 7
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_TEETH0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_LOWR104), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_FEET007), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 10
sCharacterOutfitData.aTattoo = TATTOO_MP_FM_FTD_67
ENDIF
BREAK
CASE CC_OUTFIT_BEACH_7
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 10
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_FEET0_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB11_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
sCharacterOutfitData.aTattoo = GET_TATTOO_ENUM_FROM_DLC_HASH(HASH("FM_Hip_M_Tshirt_009"), TATTOO_MP_FM)
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_LOWR10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_FEET003), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_ACCS0_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB0_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_SMART_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_LEGS0_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET1_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH0_12), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_ACCS3_13), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB1_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS0_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_SMART_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_LEGS1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_ACCS1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_JBIB2_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS1_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_TEETH0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB3_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_SMART_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_LEGS0_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 11
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB2_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_ACCS2_5 ), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_SMART_3
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB5_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_ACCS0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ENDIF
BREAK
CASE CC_OUTFIT_SMART_4
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 12
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH0_11), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB3_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_ACCS1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB4_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_SMART_5
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_LEGS1_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET1_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 4
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_ACCS2_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 2
ENDIF
BREAK
CASE CC_OUTFIT_SMART_6
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_14), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB5_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB1_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_SMART_7
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI_M_LEGS1_8)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET1_6)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_13)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 12
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB2_9)), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS0_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_TEETH0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB3_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 6
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 15
sCharacterOutfitData.aTattoo = TATTOO_MP_FM_MTD_2
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 7
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 6
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 6
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 13
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 4
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 10
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_3
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 13
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB5_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 9
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_4
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 7
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 5
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 5
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 0
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_5
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 4
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_ACCS4_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 4
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 13
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 9
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 10
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_6
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_M_LOWR2_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 7
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB6_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 4
ENDIF
BREAK
CASE CC_OUTFIT_SPORTY_7
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 9 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 10
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 7
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 12
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB7_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET1_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_ACCS0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB0_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS2_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET1_14), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_TEETH0_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 5
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 8
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_LEGS0_11), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_13), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_FEET1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_TEETH0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_ACCS1_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB4_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_3
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS1_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_M_JBIB2_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
sCharacterOutfitData.aTattoo = GET_TATTOO_ENUM_FROM_DLC_HASH(HASH("FM_Hip_M_Tshirt_010"), TATTOO_MP_FM)
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_FEET1_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB2_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_4
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_LEGS0_12), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_ACCS1_12), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 14
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 15
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_5
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS2_12), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 14
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB2_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS1_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET1_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB0_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_6
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET1_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH1_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_ACCS1_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_JBIB2_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET1_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH0_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB2_11), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_ECCENTRIC_7
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_LEGS0_10), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET1_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_M_ACCS2_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB1_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
sCharacterOutfitData.aTattoo = GET_TATTOO_ENUM_FROM_DLC_HASH(HASH("FM_Hip_M_Tshirt_006"), TATTOO_MP_FM)
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS1_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 8
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BEACH_F_TEETH1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB2_8), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
#IF FEATURE_GEN9_STANDALONE
CASE CC_OUTFIT_EXECUTIVE_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH1_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_ACCS1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB4_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_LEGS1_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_EXECUTIVE_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_LEGS1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 10 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_ACCS4_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_JBIB3_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET0_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 12
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_JBIB1_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_EXECUTIVE_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_APA_M_LEGS_8_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 4
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_TEETH_1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI2_M_ACCS1_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_APA_M_JBIB_10_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_APA_F_LEGS_4_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_F_FEET1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_TEETH_3_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_SPECIAL_6_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_APA_F_JBIB_8_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_LEGS_4_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_FEET_2_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_JBIB_2_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_LEGS_4_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_FEET_2_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_JBIB_2_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_TORSO_2_13), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_LEGS_1_17), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_FEET_1_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_APA_M_TEETH_0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_JBIB_2_14), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_TORSO_13_13), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_LEGS_1_17), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_FEET_1_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_APA_F_TEETH_0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_JBIB_14_14), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_GUNRUNNER_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_TORSO_5_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_LEGS_1_16), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_FEET_1_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_M_JBIB_14_23), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_TORSO_5_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_LEGS_1_17), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_FEET_1_6), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_GR_F_JBIB_20_23), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_LEGS1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_FEET0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_TEETH4_15), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_ACCS1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BUSI_M_JBIB1_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_F_LEGS2_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_FEET1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_TEETH0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB6_4), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 10
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 2
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 5 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_LEGS2_12), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_FEET1_5), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_TEETH0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_ACCS1_7), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_F_JBIB0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_NIGHTCLUB_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 8 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 14 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 8
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 2 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 11
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 6
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 12 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 1
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 5
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = 1 sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = 1
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_0
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_TORSO_3_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 2
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_M_FEET_3_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_EXEC_M_SPECIAL_2_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_M_JBIB_24_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_IE_F_TORSO_0_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_STUNT_F_LEGS_3_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 2
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_F_JBIB_17_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_1
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 4
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HIPS_M_FEET1_9), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 15 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_M_JBIB_27_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 13 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = 3 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_F_DECL_1_0), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_F_JBIB_32_1), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
CASE CC_OUTFIT_BIKER_2
IF ePedModel = MP_M_FREEMODE_01
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 4 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LOW2_M_LEGS_0_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 7 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 15
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_VAL_M_ACCS2_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_M_JBIB_10_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ELSE
sCharacterOutfitData.iComponentDrawableID[PED_COMP_BERD] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_BERD] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TORSO] = 6 sCharacterOutfitData.iComponentTextureID[PED_COMP_TORSO] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_F_LEGS_0_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_LEG] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_LEG] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_FEET] = 11 sCharacterOutfitData.iComponentTextureID[PED_COMP_FEET] = 3
sCharacterOutfitData.iComponentDrawableID[PED_COMP_TEETH] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_TEETH] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_LOW2_F_SPECIAL_3_2), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL] = componentItem.m_textureIndex
sCharacterOutfitData.iComponentDrawableID[PED_COMP_SPECIAL2] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_SPECIAL2] = 0
sCharacterOutfitData.iComponentDrawableID[PED_COMP_DECL] = 0 sCharacterOutfitData.iComponentTextureID[PED_COMP_DECL] = 0
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_BIKER_F_JBIB_10_3), componentItem)
sCharacterOutfitData.iComponentDrawableID[PED_COMP_JBIB] = componentItem.m_drawableIndex sCharacterOutfitData.iComponentTextureID[PED_COMP_JBIB] = componentItem.m_textureIndex
ENDIF
BREAK
#ENDIF
ENDSWITCH
ENDPROC
/// PURPOSE:
/// Populates the struct passed with the correct hat data
PROC GET_CHARACTER_CREATOR_HAT(MODEL_NAMES ePedModel, INT iHat, MP_CHARACTER_CREATOR_PROP &sCharacterPropData)
scrShopPedProp propItem
IF ePedModel = MP_M_FREEMODE_01
SWITCH iHat
CASE 0 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 1 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 2 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 3 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 4 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 5 sCharacterPropData.iPropDrawableID = 5 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 6
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_HAT_0_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 7
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_HAT_0_2), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 8 sCharacterPropData.iPropDrawableID = 6 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 9 sCharacterPropData.iPropDrawableID = 6 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 10 sCharacterPropData.iPropDrawableID = 6 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 11 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 12 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 13 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 14 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 15 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 16 sCharacterPropData.iPropDrawableID = 10 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 17 sCharacterPropData.iPropDrawableID = 10 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 18 sCharacterPropData.iPropDrawableID = 12 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 19 sCharacterPropData.iPropDrawableID = 12 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 20
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_HAT_2_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 21 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 22 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 23 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 24 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 25 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 26 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 6 BREAK
CASE 27 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 28 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 29 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 30
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_M_HEAD0_3), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 31
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_M_HEAD0_4), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 32
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_M_HEAD0_5), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 33
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_M_HEAD1_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 34
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_M_HEAD1_4), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 35
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_M_HEAD1_5), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 36
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_HAT0_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 37
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_HAT0_8), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 38
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_HAT0_10), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 39
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_HAT1_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 40
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_HAT1_8), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 41
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_HAT1_10), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 42
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_HAT_1_3), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 43
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_HAT_1_5), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 44
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_HAT_1_7), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
ENDSWITCH
ELSE
SWITCH iHat
CASE 0 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 1 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 2 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 3 sCharacterPropData.iPropDrawableID = 5 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 4 sCharacterPropData.iPropDrawableID = 5 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 5 sCharacterPropData.iPropDrawableID = 5 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 6 sCharacterPropData.iPropDrawableID = 6 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 7 sCharacterPropData.iPropDrawableID = 6 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 8 sCharacterPropData.iPropDrawableID = 6 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 9 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 10 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 11 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 12 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 13 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 14 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 15 sCharacterPropData.iPropDrawableID = 11 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 16
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_HAT0_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 17
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_HAT0_8), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 18 sCharacterPropData.iPropDrawableID = 12 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 19 sCharacterPropData.iPropDrawableID = 12 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 20
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_HAT_1_2), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 21 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 22 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 23 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 24 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 25 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 26 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 4 BREAK
CASE 27 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 28 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 29 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 30
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_HEAD2_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 31
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_HEAD2_2), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 32
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_HEAD2_3), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 33
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_HEAD3_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 34
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_HEAD3_1), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 35
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_HEAD3_3), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 36
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_HEAD4_1), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 37
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_HEAD4_6), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 38
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_HAT0_10), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 39
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_HAT1_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 40
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_HAT1_8), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 41
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_HAT1_10), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 42
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_HAT_0_1), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 43
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_HAT_0_3), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 44
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_HAT_0_6), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
ENDSWITCH
ENDIF
ENDPROC
/// PURPOSE:
/// Populates the passed struct with the details of the glasses
PROC GET_CHARACTER_CREATOR_GLASSES(MODEL_NAMES ePedModel, INT iGlasses, MP_CHARACTER_CREATOR_PROP &sCharacterPropData)
scrShopPedProp propItem
IF (ePedModel = MP_M_FREEMODE_01)
SWITCH iGlasses
CASE 0 sCharacterPropData.iPropDrawableID = 1 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 1
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_M_EYES0_1), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 2
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_M_EYES0_5), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 3 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 4 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 5 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 6 sCharacterPropData.iPropDrawableID = 3 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 7 sCharacterPropData.iPropDrawableID = 3 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 8 sCharacterPropData.iPropDrawableID = 3 sCharacterPropData.iPropTextureID = 4 BREAK
CASE 9 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 10 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 11 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 12 sCharacterPropData.iPropDrawableID = 5 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 13 sCharacterPropData.iPropDrawableID = 5 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 14 sCharacterPropData.iPropDrawableID = 5 sCharacterPropData.iPropTextureID = 6 BREAK
CASE 15 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 16 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 17 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 18 sCharacterPropData.iPropDrawableID = 8 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 19 sCharacterPropData.iPropDrawableID = 8 sCharacterPropData.iPropTextureID = 4 BREAK
CASE 20 sCharacterPropData.iPropDrawableID = 8 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 21 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 22 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 23 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 24 sCharacterPropData.iPropDrawableID = 10 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 25 sCharacterPropData.iPropDrawableID = 10 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 26 sCharacterPropData.iPropDrawableID = 10 sCharacterPropData.iPropTextureID = 6 BREAK
CASE 27 sCharacterPropData.iPropDrawableID = 12 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 28 sCharacterPropData.iPropDrawableID = 12 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 29 sCharacterPropData.iPropDrawableID = 12 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 30 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 31 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 32 sCharacterPropData.iPropDrawableID = 13 sCharacterPropData.iPropTextureID = 6 BREAK
CASE 33 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 34 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 35 sCharacterPropData.iPropDrawableID = 15 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 36
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_GLASSES0_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 37
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_GLASSES0_2), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 38
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_GLASSES0_7), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 39
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_GLASSES1_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 40
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_GLASSES1_1), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 41
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_M_GLASSES1_2), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 42
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_GLASSES_0_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 43
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_GLASSES_0_2), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 44
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_GLASSES_0_7), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 45
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_GLASSES_1_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 46
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_GLASSES_1_6), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 47
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_M_GLASSES_1_7), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
ENDSWITCH
ELSE
SWITCH iGlasses
CASE 0 sCharacterPropData.iPropDrawableID = 0 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 1 sCharacterPropData.iPropDrawableID = 0 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 2 sCharacterPropData.iPropDrawableID = 0 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 3 sCharacterPropData.iPropDrawableID = 1 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 4 sCharacterPropData.iPropDrawableID = 1 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 5 sCharacterPropData.iPropDrawableID = 1 sCharacterPropData.iPropTextureID = 4 BREAK
CASE 6 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 7 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 8 sCharacterPropData.iPropDrawableID = 2 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 9 sCharacterPropData.iPropDrawableID = 3 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 10 sCharacterPropData.iPropDrawableID = 3 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 11 sCharacterPropData.iPropDrawableID = 3 sCharacterPropData.iPropTextureID = 4 BREAK
CASE 12 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 13 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 14 sCharacterPropData.iPropDrawableID = 4 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 15 sCharacterPropData.iPropDrawableID = 6 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 16
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_EYES0_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 17
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_EYES0_5), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 18 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 19 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 20 sCharacterPropData.iPropDrawableID = 7 sCharacterPropData.iPropTextureID = 5 BREAK
CASE 21 sCharacterPropData.iPropDrawableID = 8 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 22
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_EYES1_4), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 23
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BEACH_F_EYES1_6), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 24 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 25 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 26 sCharacterPropData.iPropDrawableID = 9 sCharacterPropData.iPropTextureID = 3 BREAK
CASE 27 sCharacterPropData.iPropDrawableID = 10 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 28 sCharacterPropData.iPropDrawableID = 10 sCharacterPropData.iPropTextureID = 6 BREAK
CASE 29 sCharacterPropData.iPropDrawableID = 10 sCharacterPropData.iPropTextureID = 7 BREAK
CASE 30 sCharacterPropData.iPropDrawableID = 11 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 31 sCharacterPropData.iPropDrawableID = 11 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 32 sCharacterPropData.iPropDrawableID = 11 sCharacterPropData.iPropTextureID = 2 BREAK
CASE 33 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 0 BREAK
CASE 34 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 1 BREAK
CASE 35 sCharacterPropData.iPropDrawableID = 14 sCharacterPropData.iPropTextureID = 4 BREAK
CASE 36
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_GLASSES0_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 37
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_GLASSES0_2), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 38
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_GLASSES0_3), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 39
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_GLASSES1_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 40
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_GLASSES1_3), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 41
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_BUSINESS_F_GLASSES1_5), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 42
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_GLASSES_0_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 43
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_GLASSES_0_2), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 44
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_GLASSES_0_5), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 45
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_GLASSES_1_0), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 46
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_GLASSES_1_3), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
CASE 47
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HIPS_F_GLASSES_1_7), propItem)
sCharacterPropData.iPropDrawableID = propItem.m_propIndex sCharacterPropData.iPropTextureID = propItem.m_textureIndex
BREAK
ENDSWITCH
ENDIF
ENDPROC
FUNC BOOL PRELOAD_MP_OUTFIT(MP_OUTFITS_APPLY_DATA &sApplyOutfitData,MP_OUTFITS_DATA &sOutfitsData)
INT i
SWITCH sApplyOutfitData.ePreloadStage
CASE POS_REQUEST
REPEAT NUM_PED_COMPONENTS i
IF sOutfitsData.iComponentDrawableID[i] != -1
SET_PED_PRELOAD_VARIATION_DATA(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), sOutfitsData.iComponentDrawableID[i], sOutfitsData.iComponentTextureID[i])
ENDIF
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iPropDrawableID) i
IF sOutfitsData.iPropDrawableID[i] != -1
AND sOutfitsData.iPropDrawableID[i] != 255
SET_PED_PRELOAD_PROP_DATA(sApplyOutfitData.pedID, INT_TO_ENUM(PED_PROP_POSITION, i), sOutfitsData.iPropDrawableID[i], sOutfitsData.iPropTextureID[i])
ENDIF
ENDREPEAT
sApplyOutfitData.ePreloadStage = POS_CHECK
RETURN FALSE
BREAK
CASE POS_CHECK
IF NOT HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(sApplyOutfitData.pedID)
RETURN FALSE
ENDIF
IF NOT HAS_PED_PRELOAD_PROP_DATA_FINISHED(sApplyOutfitData.pedID)
RETURN FALSE
ENDIF
sApplyOutfitData.ePreloadStage = POS_LOADED
RETURN TRUE
BREAK
DEFAULT
RETURN FALSE
BREAK
ENDSWITCH
CDEBUG3LN(DEBUG_MISSION,"[RBJ] - ped_component_public - PRELOAD_MP_OUTFIT - Hit DEFAULT in SWITCH and returning FALSE - sApplyOutfitData.ePreloadStage = ", enum_to_int(sApplyOutfitData.ePreloadStage))
RETURN FALSE
ENDFUNC
FUNC BOOL PRELOAD_MP_HEIST_MASK_DATA(MP_OUTFITS_APPLY_DATA &sApplyOutfitData)
CDEBUG3LN(DEBUG_MISSION, "[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - sApplyOutfitData.ePreloadStage = ", sApplyOutfitData.ePreloadStage)
MP_OUTFITS_DATA sOutfitsData
INT i
REPEAT NUM_PED_COMPONENTS i
sOutfitsData.iComponentDrawableID[i] = -1
sOutfitsData.iComponentTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iPropDrawableID) i
sOutfitsData.iPropDrawableID[i] = -1
sOutfitsData.iPropTextureID[i] = -1
ENDREPEAT
SWITCH sApplyOutfitData.ePreloadStage
CASE POS_REQUEST
CDEBUG3LN(DEBUG_MISSION, "[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_REQUEST.")
IF GET_MP_HEIST_MASK_DATA(sOutfitsData, sApplyOutfitData, TRUE)
REPEAT NUM_PED_COMPONENTS i
IF sOutfitsData.iComponentDrawableID[i] != -1
CDEBUG3LN(DEBUG_MISSION, "[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_REQUEST - SET_PED_PRELOAD_VARIATION_DATA - PED_COMPONENT: ", i)
SET_PED_PRELOAD_VARIATION_DATA(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), sOutfitsData.iComponentDrawableID[i], sOutfitsData.iComponentTextureID[i])
ENDIF
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iPropDrawableID) i
IF sOutfitsData.iPropDrawableID[i] != -1
AND sOutfitsData.iPropDrawableID[i] != 255
CDEBUG3LN(DEBUG_MISSION, "[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_REQUEST - SET_PED_PRELOAD_PROP_DATA - PED_PROP_POSITION: ", i)
SET_PED_PRELOAD_PROP_DATA(sApplyOutfitData.pedID, INT_TO_ENUM(PED_PROP_POSITION, i), sOutfitsData.iPropDrawableID[i], sOutfitsData.iPropTextureID[i])
ENDIF
ENDREPEAT
ELSE
CDEBUG3LN(DEBUG_MISSION, "[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_REQUEST - GET_MP_HEIST_MASK_DATA - FAILED - Returning FALSE for another pass.")
RETURN FALSE
ENDIF
PRINTLN("[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_REQUEST setting to POS_CHECK - Returning FALSE for another pass back into POS_CHECK.")
sApplyOutfitData.ePreloadStage = POS_CHECK
RETURN FALSE
CASE POS_CHECK
CDEBUG3LN(DEBUG_MISSION, "[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_CHECK.")
IF NOT HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(sApplyOutfitData.pedID)
CPRINTLN(DEBUG_MISSION,"PRELOAD_MP_HEIST_MASK_DATA - not HAS_PED_PRELOAD_VARIATION_DATA_FINISHED - ", enum_to_int(sApplyOutfitdata.eOutfit))
CDEBUG3LN(DEBUG_MISSION, "[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_CHECK - HAS_PED_PRELOAD_VARIATION_DATA_FINISHED - FAILED on: ", ENUM_TO_INT(sApplyOutfitData.eOutfit), " - Returning FALSE.")
RETURN FALSE
ENDIF
IF NOT HAS_PED_PRELOAD_PROP_DATA_FINISHED(sApplyOutfitData.pedID)
CPRINTLN(DEBUG_MISSION,"PRELOAD_MP_HEIST_MASK_DATA - not HAS_PED_PRELOAD_PROP_DATA_FINISHED - ", enum_to_int(sApplyOutfitdata.eOutfit))
CDEBUG3LN(DEBUG_MISSION, "[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_CHECK - HAS_PED_PRELOAD_VARIATION_DATA_FINISHED - FAILED on: ", ENUM_TO_INT(sApplyOutfitData.eOutfit), " - Returning FALSE.")
RETURN FALSE
ENDIF
// RELEASE_PED_COMPONENT_PRELOAD_VARIATION_DATA - Use after SET_PED_COMPONENT_VARIATION has been called to release the preload budget from memory.
CPRINTLN(DEBUG_MISSION,"PRELOAD_MP_HEIST_MASK_DATA: LOADED.")
PRINTLN("[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - POS_CHECK setting to POS_LOADED and returning TRUE.")
sApplyOutfitData.ePreloadStage = POS_LOADED
RETURN TRUE
DEFAULT
PRINTLN("[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - Hit DEFAULT in SWITCH and returning FALSE - sApplyOutfitData.ePreloadStage = ", sApplyOutfitData.ePreloadStage)
RETURN FALSE
ENDSWITCH
PRINTLN("[RBJ] - ped_component_public - PRELOAD_MP_HEIST_MASK_DATA - Return FALSE beneath SWITCH - Something has gone wrong here...")
RETURN FALSE
ENDFUNC
/// PURPOSE: Simple preload check for specific peds used in corona during global outfit changes
FUNC BOOL HAS_PED_MP_OUTFIT_PRELOADED(PED_INDEX aPed)
IF HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(aPed)
AND HAS_PED_PRELOAD_PROP_DATA_FINISHED(aPed)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
PROC RELEASE_PRELOADED_MP_HEIST_OUTFIT(PED_INDEX pedID)
RELEASE_PED_PRELOAD_VARIATION_DATA(pedID)
RELEASE_PED_PRELOAD_PROP_DATA(pedID)
ENDPROC
ENUM MP_HEIST_TYPE_ENUM
MP_HEIST_ORNATE,
MP_HEIST_PRISON,
MP_HEIST_BIOLAB
ENDENUM
STRUCT MP_HEIST_GEAR_DATA
INT iComponentDrawableID
INT iComponentTextureID
PED_COMPONENT eComponentType
INT iComponentDrawableID2
INT iComponentTextureID2
PED_COMPONENT eComponentType2
INT iPropDrawableID
INT iPropTextureID
PED_PROP_POSITION ePropPosition
ENDSTRUCT
FUNC STRING GET_MP_HEIST_GEAR_NAME(MP_HEIST_GEAR_ENUM eGear)
SWITCH eGear
CASE HEIST_GEAR_WHITE_HOCKEY_MASK RETURN "HG_W_HOMASK" BREAK // Hockey Mask
CASE HEIST_GEAR_BALACLAVA RETURN "HG_BALACLAVA" BREAK // Balaclava
CASE HEIST_GEAR_SPORTS_BAG RETURN "HG_SPORTSBAG" BREAK // Sports Bad
CASE HEIST_GEAR_REBREATHER RETURN "HG_REBREATH" BREAK // Rebreather
CASE HEIST_GEAR_NIGHTVISION RETURN "HG_NVGS" BREAK // Nightvision Goggles
CASE HEIST_GEAR_EARPIECE_1 RETURN "HG_EARPIECE1" BREAK // Earpiece 1
CASE HEIST_GEAR_EARPIECE_2 RETURN "HG_EARPIECE2" BREAK // Earpiece 2
CASE HEIST_GEAR_EARPIECE_3 RETURN "HG_EARPIECE3" BREAK // Earpiece 3
CASE HEIST_GEAR_RADIO_HEADSET RETURN "HG_RADIOHEAD" BREAK // Radio Headset
CASE HEIST_GEAR_PARACHUTE RETURN "HG_PARACHUTE" BREAK // Parachute
CASE HEIST_GEAR_GAS_MASK RETURN "HG_GASMASK" BREAK // Gas Mask
CASE HEIST_GEAR_CORONA_MASK
INT iTeam
IF NOT IS_FAKE_MULTIPLAYER_MODE_SET()
iTeam = GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].sClientCoronaData.iTeamChosen
ELSE
iTeam = g_FMMC_STRUCT.iTestMyTeam
ENDIF
RETURN GET_MP_OUTFIT_MASK_NAME(INT_TO_ENUM(MP_OUTFIT_MASK_ENUM, GET_LOCAL_DEFAULT_MASK(iTeam)))
BREAK // Corona Mask or Helmet
CASE HEIST_GEAR_DUFFEL_BLACK RETURN "HG_DUFFEL_B" BREAK // Black duffel bag
CASE HEIST_GEAR_DUFFEL_BLACK_FULL RETURN "HG_DUFFEL_B" BREAK // Black duffel bag
CASE HEIST_GEAR_DUFFEL_BLACK_ARM RETURN "HG_DUFFEL_B" BREAK // Black duffel bag
CASE HEIST_GEAR_DUFFEL_BLACK_ARM_FULL RETURN "HG_DUFFEL_B" BREAK // Black duffel bag
CASE HEIST_GEAR_DUFFEL_BLUE RETURN "HG_DUFFEL_BU" BREAK // Blue duffel bag
CASE HEIST_GEAR_DUFFEL_BLUE_FULL RETURN "HG_DUFFEL_BU" BREAK // Blue duffel bag
CASE HEIST_GEAR_DUFFEL_BLUE_ARM RETURN "HG_DUFFEL_BU" BREAK // Blue duffel bag
CASE HEIST_GEAR_DUFFEL_BLUE_ARM_FULL RETURN "HG_DUFFEL_BU" BREAK // Blue duffel bag
CASE HEIST_GEAR_DUFFEL_YELLOW RETURN "HG_DUFFEL_Y" BREAK // Yellow duffel bag
CASE HEIST_GEAR_DUFFEL_YELLOW_FULL RETURN "HG_DUFFEL_Y" BREAK // Yellow duffel bag
CASE HEIST_GEAR_DUFFEL_YELLOW_ARM RETURN "HG_DUFFEL_Y" BREAK // Yellow duffel bag
CASE HEIST_GEAR_DUFFEL_YELLOW_ARM_FULL RETURN "HG_DUFFEL_Y" BREAK // Yellow duffel bag
CASE HEIST_GEAR_DUFFEL_RED RETURN "HG_DUFFEL_R" BREAK // Red duffel bag
CASE HEIST_GEAR_DUFFEL_RED_FULL RETURN "HG_DUFFEL_R" BREAK // Red duffel bag
CASE HEIST_GEAR_DUFFEL_RED_ARM RETURN "HG_DUFFEL_R" BREAK // Red duffel bag
CASE HEIST_GEAR_DUFFEL_RED_ARM_FULL RETURN "HG_DUFFEL_R" BREAK // Red duffel bag
CASE HEIST_GEAR_DUFFEL_GREEN RETURN "HG_DUFFEL_G" BREAK // Green duffel bag
CASE HEIST_GEAR_DUFFEL_GREEN_FULL RETURN "HG_DUFFEL_G" BREAK // Green duffel bag
CASE HEIST_GEAR_DUFFEL_GREEN_ARM RETURN "HG_DUFFEL_G" BREAK // Green duffel bag
CASE HEIST_GEAR_DUFFEL_GREEN_ARM_FULL RETURN "HG_DUFFEL_G" BREAK // Green duffel bag
CASE HEIST_GEAR_DUFFEL_ORANGE RETURN "HG_DUFFEL_O" BREAK // Orange duffel bag
CASE HEIST_GEAR_DUFFEL_ORANGE_FULL RETURN "HG_DUFFEL_O" BREAK // Orange duffel bag
CASE HEIST_GEAR_DUFFEL_ORANGE_ARM RETURN "HG_DUFFEL_O" BREAK // Orange duffel bag
CASE HEIST_GEAR_DUFFEL_ORANGE_ARM_FULL RETURN "HG_DUFFEL_O" BREAK // Orange duffel bag
CASE HEIST_GEAR_DUFFEL_PURPLE RETURN "HG_DUFFEL_P" BREAK // Purple duffel bag
CASE HEIST_GEAR_DUFFEL_PURPLE_FULL RETURN "HG_DUFFEL_P" BREAK // Purple duffel bag
CASE HEIST_GEAR_DUFFEL_PURPLE_ARM RETURN "HG_DUFFEL_P" BREAK // Purple duffel bag
CASE HEIST_GEAR_DUFFEL_PURPLE_ARM_FULL RETURN "HG_DUFFEL_P" BREAK // Purple duffel bag
CASE HEIST_GEAR_DUFFEL_PINK RETURN "HG_DUFFEL_PI" BREAK // Pink duffel bag
CASE HEIST_GEAR_DUFFEL_PINK_FULL RETURN "HG_DUFFEL_PI" BREAK // Pink duffel bag
CASE HEIST_GEAR_DUFFEL_PINK_ARM RETURN "HG_DUFFEL_PI" BREAK // Pink duffel bag
CASE HEIST_GEAR_DUFFEL_PINK_ARM_FULL RETURN "HG_DUFFEL_PI" BREAK // Pink duffel bag
CASE HEIST_GEAR_DUFFEL_BUGSTAR RETURN "HG_DUFFEL_BUG" BREAK // Bugstar duffel bag
CASE HEIST_GEAR_DUFFEL_BUGSTAR_FULL RETURN "HG_DUFFEL_BUG" BREAK // Bugstar duffel bag
CASE HEIST_GEAR_DUFFEL_BUGSTAR_ARM RETURN "HG_DUFFEL_BUG" BREAK // Bugstar duffel bag
CASE HEIST_GEAR_DUFFEL_BUGSTAR_ARM_FULL RETURN "HG_DUFFEL_BUG" BREAK // Bugstar duffel bag
CASE HEIST_GEAR_DUFFEL_CELEB RETURN "HG_DUFFEL_CLEB" BREAK // Celeb duffel bag
CASE HEIST_GEAR_DUFFEL_CELEB_FULL RETURN "HG_DUFFEL_CLEB" BREAK // Celeb duffel bag
CASE HEIST_GEAR_DUFFEL_CELEB_ARM RETURN "HG_DUFFEL_CLEB" BREAK // Celeb duffel bag
CASE HEIST_GEAR_DUFFEL_CELEB_ARM_FULL RETURN "HG_DUFFEL_CLEB" BREAK // Celeb duffel bag
CASE HEIST_GEAR_DUFFEL_CAMO_1 RETURN "HG_DUFFEL_C1" BREAK // Camo duffel bag//Direct 1
CASE HEIST_GEAR_DUFFEL_CAMO_1_FULL RETURN "HG_DUFFEL_C1" BREAK // Camo duffel bag//Direct 1
CASE HEIST_GEAR_DUFFEL_CAMO_1_ARM RETURN "HG_DUFFEL_C1" BREAK // Camo duffel bag//Direct 1
CASE HEIST_GEAR_DUFFEL_CAMO_1_ARM_FULL RETURN "HG_DUFFEL_C1" BREAK // Camo duffel bag//Direct 1
CASE HEIST_GEAR_DUFFEL_CAMO_2 RETURN "HG_DUFFEL_C2" BREAK // Camo duffel bag//Direct 2
CASE HEIST_GEAR_DUFFEL_CAMO_2_FULL RETURN "HG_DUFFEL_C2" BREAK // Camo duffel bag//Direct 2
CASE HEIST_GEAR_DUFFEL_CAMO_2_ARM RETURN "HG_DUFFEL_C2" BREAK // Camo duffel bag//Direct 2
CASE HEIST_GEAR_DUFFEL_CAMO_2_ARM_FULL RETURN "HG_DUFFEL_C2" BREAK // Camo duffel bag//Direct 2
CASE HEIST_GEAR_DUFFEL_CAMO_3 RETURN "HG_DUFFEL_C3" BREAK // Camo duffel bag//Stealth 2
CASE HEIST_GEAR_DUFFEL_CAMO_3_FULL RETURN "HG_DUFFEL_C3" BREAK // Camo duffel bag//Stealth 2
CASE HEIST_GEAR_DUFFEL_CAMO_3_ARM RETURN "HG_DUFFEL_C3" BREAK // Camo duffel bag//Stealth 2
CASE HEIST_GEAR_DUFFEL_CAMO_3_ARM_FULL RETURN "HG_DUFFEL_C3" BREAK // Camo duffel bag//Stealth 2
CASE HEIST_GEAR_DUFFEL_CAMO_4 RETURN "HG_DUFFEL_C4" BREAK // Camo duffel bag//Stealth 1
CASE HEIST_GEAR_DUFFEL_CAMO_4_FULL RETURN "HG_DUFFEL_C4" BREAK // Camo duffel bag//Stealth 1
CASE HEIST_GEAR_DUFFEL_CAMO_4_ARM RETURN "HG_DUFFEL_C4" BREAK // Camo duffel bag//Stealth 1
CASE HEIST_GEAR_DUFFEL_CAMO_4_ARM_FULL RETURN "HG_DUFFEL_C4" BREAK // Camo duffel bag//Stealth 1
CASE HEIST_GEAR_DUFFEL_CAMO_5 RETURN "HG_DUFFEL_C5" BREAK // Camo duffel bag//Direct 3
CASE HEIST_GEAR_DUFFEL_CAMO_5_FULL RETURN "HG_DUFFEL_C5" BREAK // Camo duffel bag//Direct 3
CASE HEIST_GEAR_DUFFEL_CAMO_5_ARM RETURN "HG_DUFFEL_C5" BREAK // Camo duffel bag//Direct 3
CASE HEIST_GEAR_DUFFEL_CAMO_5_ARM_FULL RETURN "HG_DUFFEL_C5" BREAK // Camo duffel bag//Direct 3
CASE HEIST_GEAR_DUFFEL_CAMO_6 RETURN "HG_DUFFEL_C6" BREAK // Camo duffel bag//Stealth 3
CASE HEIST_GEAR_DUFFEL_CAMO_6_FULL RETURN "HG_DUFFEL_C6" BREAK // Camo duffel bag//Stealth 3
CASE HEIST_GEAR_DUFFEL_CAMO_6_ARM RETURN "HG_DUFFEL_C6" BREAK // Camo duffel bag//Stealth 3
CASE HEIST_GEAR_DUFFEL_CAMO_6_ARM_FULL RETURN "HG_DUFFEL_C6" BREAK // Camo duffel bag//Stealth 3
CASE HEIST_GEAR_IAA_BADGE RETURN "HG_IAA_BADGE" BREAK // IAA Badge
ENDSWITCH
#IF IS_DEBUG_BUILD
PRINTLN("GET_MP_HEIST_GEAR_NAME - Enum missing tell Kenneth R. - ", eGear)
SCRIPT_ASSERT("GET_MP_HEIST_GEAR_NAME - Enum missing tell Kenneth R.")
#ENDIF
RETURN "INVALID"
ENDFUNC
FUNC BOOL GET_MP_HEIST_GEAR_DATA(ped_index pedID,MP_OUTFITS_DATA &sOutfitsData, MP_HEIST_GEAR_ENUM eGear,MP_OUTFIT_MASK_ENUM &eMask)
scrShopPedComponent componentItem
scrShopPedProp propItem
bool bMale = false
if GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01
bMale = true
endif
SWITCH eGear
CASE HEIST_GEAR_WHITE_HOCKEY_MASK
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = 4
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = 0
RETURN TRUE
BREAK
CASE HEIST_GEAR_BALACLAVA
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_2_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_2_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_SPORTS_BAG
IF bMale
// Bigger bag for armour
//Commenting out the other bag as Alt ID's should automatically be added by character code
// IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL2) > 0
// GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_HAND_7_0), componentItem)
// ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_HAND_5_0), componentItem)
// ENDIF
ELSE
// IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL2) > 0
// GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_HAND_7_0), componentItem)
// ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_HAND_5_0), componentItem)
// ENDIF
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_REBREATHER
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_1_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_1_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_NIGHTVISION
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_HAIR_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAIR] = componentItem.m_textureIndex
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_HAIR_0_0), componentItem)
sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAIR] = componentItem.m_textureIndex
ENDIF
RETURN TRUE
BREAK
CASE HEIST_GEAR_EARPIECE_1
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_EAR0_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_EAR0_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ANCHOR_EARS] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_EARS] = propItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_EARPIECE_2
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_EAR1_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_EAR1_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ANCHOR_EARS] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_EARS] = propItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_EARPIECE_3
IF bMale
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_M_EAR2_0), propItem)
ELSE
GET_SHOP_PED_PROP(ENUM_TO_INT(DLC_MP_HEIST_F_EAR2_0), propItem)
ENDIF
sOutfitsData.iPropDrawableID[ANCHOR_EARS] = propItem.m_propIndex
sOutfitsData.iPropTextureID[ANCHOR_EARS] = propItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_RADIO_HEADSET
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = 19
sOutfitsData.iPropTextureID[ANCHOR_HEAD] = 0
RETURN TRUE
BREAK
CASE HEIST_GEAR_PARACHUTE
sOutfitsData.iPropDrawableID[PED_COMP_HAND] = 6
sOutfitsData.iPropTextureID[PED_COMP_HAND] = 0
RETURN TRUE
BREAK
CASE HEIST_GEAR_GAS_MASK
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_BERD_3_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_BERD_3_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_BERD] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_BERD] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_CORONA_MASK
INT iTeam
IF NOT IS_FAKE_MULTIPLAYER_MODE_SET()
iTeam = GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].sClientCoronaData.iTeamChosen
ELSE
iTeam = g_FMMC_STRUCT.iTestMyTeam
ENDIF
eMask = INT_TO_ENUM(MP_OUTFIT_MASK_ENUM, GET_LOCAL_DEFAULT_MASK(iTeam))
MP_OUTFITS_APPLY_DATA sApplyOutfitData
sApplyOutfitdata.eMask = eMask
sApplyOutfitdata.pedID = pedID
if GET_MP_HEIST_MASK_DATA(sOutfitsData, sApplyOutfitData)
RETURN TRUE
endif
BREAK
CASE HEIST_GEAR_DUFFEL_BLACK
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BLUE
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_1), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_1), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_2), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_2), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_RED
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_3), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_3), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_RED_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_3), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_3), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_RED_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_3), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_3), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_RED_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_3), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_3), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_GREEN
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_4), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_4), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_4), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_4), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_4), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_4), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_4), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_4), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_5), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_5), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_5), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_5), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_5), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_5), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_5), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_5), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_6), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_6), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_PINK
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_7), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_7), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_PINK_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_7), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_7), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_PINK_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_7), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_7), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_PINK_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_7), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_7), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_8), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_8), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CELEB
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_9), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_9), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_9), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_9), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_9), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_9), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_9), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_9), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_10), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_10), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_11), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_11), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_12), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_12), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_12), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_12), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_12), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_12), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_12), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_12), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_13), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_13), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_13), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_13), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_13), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_13), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_13), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_13), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_14), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_14), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_14), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_14), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_14), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_14), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_14), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_14), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_0_15), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_0_15), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_1_15), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_1_15), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_ARM
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_2_15), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_2_15), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_ARM_FULL
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_M_HAND_3_15), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_H3_F_HAND_3_15), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_HAND] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_HAND] = componentItem.m_textureIndex
RETURN TRUE
BREAK
CASE HEIST_GEAR_IAA_BADGE
IF bMale
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_M_TEETH_3_0), componentItem)
ELSE
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_X17_F_TEETH_3_0), componentItem)
ENDIF
sOutfitsData.iComponentDrawableID[PED_COMP_TEETH] = componentItem.m_drawableIndex
sOutfitsData.iComponentTextureID[PED_COMP_TEETH] = componentItem.m_textureIndex
RETURN TRUE
BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION,"GET_MP_HEIST_GEAR_DATA - No data grabbed return false tell Craig V [Gear: ", enum_to_int(eGear),"]")
#ENDIF
RETURN FALSE
ENDFUNC
FUNC INT GET_MP_HEIST_GEAR_NAME_HASH(MODEL_NAMES ePedModel, MP_HEIST_GEAR_ENUM eGear)
IF (ePedModel = MP_M_FREEMODE_01)
SWITCH eGear
CASE HEIST_GEAR_WHITE_HOCKEY_MASK BREAK
CASE HEIST_GEAR_BALACLAVA BREAK
CASE HEIST_GEAR_SPORTS_BAG BREAK
CASE HEIST_GEAR_REBREATHER RETURN ENUM_TO_INT(DLC_MP_HEIST_M_BERD_1_0) BREAK
CASE HEIST_GEAR_NIGHTVISION RETURN ENUM_TO_INT(DLC_MP_HEIST_M_BERD_0_0) BREAK
CASE HEIST_GEAR_EARPIECE_1 RETURN ENUM_TO_INT(DLC_MP_HEIST_M_EAR0_0) BREAK
CASE HEIST_GEAR_EARPIECE_2 RETURN ENUM_TO_INT(DLC_MP_HEIST_M_EAR1_0) BREAK
CASE HEIST_GEAR_EARPIECE_3 RETURN ENUM_TO_INT(DLC_MP_HEIST_M_EAR2_0) BREAK
CASE HEIST_GEAR_RADIO_HEADSET BREAK
CASE HEIST_GEAR_PARACHUTE BREAK
CASE HEIST_GEAR_GAS_MASK RETURN ENUM_TO_INT(DLC_MP_HEIST_M_BERD_3_0) BREAK
CASE HEIST_GEAR_CORONA_MASK BREAK
CASE HEIST_GEAR_DUFFEL_BLACK BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_ARM BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BLUE BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_ARM BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_FULL BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_ARM BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_RED BREAK
CASE HEIST_GEAR_DUFFEL_RED_FULL BREAK
CASE HEIST_GEAR_DUFFEL_RED_ARM BREAK
CASE HEIST_GEAR_DUFFEL_RED_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_GREEN BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_FULL BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_ARM BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_FULL BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_ARM BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_FULL BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_ARM BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_PINK BREAK
CASE HEIST_GEAR_DUFFEL_PINK_FULL BREAK
CASE HEIST_GEAR_DUFFEL_PINK_ARM BREAK
CASE HEIST_GEAR_DUFFEL_PINK_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_ARM BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CELEB BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_ARM_FULL BREAK
CASE HEIST_GEAR_IAA_BADGE BREAK
ENDSWITCH
ELIF (ePedModel = MP_F_FREEMODE_01)
SWITCH eGear
CASE HEIST_GEAR_WHITE_HOCKEY_MASK BREAK
CASE HEIST_GEAR_BALACLAVA BREAK
CASE HEIST_GEAR_SPORTS_BAG BREAK
CASE HEIST_GEAR_REBREATHER RETURN ENUM_TO_INT(DLC_MP_HEIST_F_BERD_1_0) BREAK
CASE HEIST_GEAR_NIGHTVISION RETURN ENUM_TO_INT(DLC_MP_HEIST_F_BERD_0_0) BREAK
CASE HEIST_GEAR_EARPIECE_1 RETURN ENUM_TO_INT(DLC_MP_HEIST_F_EAR0_0) BREAK
CASE HEIST_GEAR_EARPIECE_2 RETURN ENUM_TO_INT(DLC_MP_HEIST_F_EAR1_0) BREAK
CASE HEIST_GEAR_EARPIECE_3 RETURN ENUM_TO_INT(DLC_MP_HEIST_F_EAR2_0) BREAK
CASE HEIST_GEAR_RADIO_HEADSET BREAK
CASE HEIST_GEAR_PARACHUTE BREAK
CASE HEIST_GEAR_GAS_MASK RETURN ENUM_TO_INT(DLC_MP_HEIST_F_BERD_3_0) BREAK
CASE HEIST_GEAR_CORONA_MASK BREAK
CASE HEIST_GEAR_DUFFEL_BLACK BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_ARM BREAK
CASE HEIST_GEAR_DUFFEL_BLACK_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BLUE BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_ARM BREAK
CASE HEIST_GEAR_DUFFEL_BLUE_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_FULL BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_ARM BREAK
CASE HEIST_GEAR_DUFFEL_YELLOW_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_RED BREAK
CASE HEIST_GEAR_DUFFEL_RED_FULL BREAK
CASE HEIST_GEAR_DUFFEL_RED_ARM BREAK
CASE HEIST_GEAR_DUFFEL_RED_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_GREEN BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_FULL BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_ARM BREAK
CASE HEIST_GEAR_DUFFEL_GREEN_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_FULL BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_ARM BREAK
CASE HEIST_GEAR_DUFFEL_ORANGE_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_FULL BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_ARM BREAK
CASE HEIST_GEAR_DUFFEL_PURPLE_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_PINK BREAK
CASE HEIST_GEAR_DUFFEL_PINK_FULL BREAK
CASE HEIST_GEAR_DUFFEL_PINK_ARM BREAK
CASE HEIST_GEAR_DUFFEL_PINK_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_FULL BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_ARM BREAK
CASE HEIST_GEAR_DUFFEL_BUGSTAR_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CELEB BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CELEB_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_1_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_2_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_3_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_4_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_5_ARM_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6 BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_FULL BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_ARM BREAK
CASE HEIST_GEAR_DUFFEL_CAMO_6_ARM_FULL BREAK
CASE HEIST_GEAR_IAA_BADGE BREAK
ENDSWITCH
ENDIF
RETURN -1
ENDFUNC
PROC DISABLE_NIGHT_VISION_CONTROLLER(BOOL bDisable)
IF (g_bDisableNightVisionController != bDisable)
CPRINTLN(DEBUG_SHOPS, "<", GET_THIS_SCRIPT_NAME(), "> DISABLE_NIGHT_VISION_CONTROLLER set to ", bDisable, ".")
DEBUG_PRINTCALLSTACK()
g_bDisableNightVisionController = bDisable
IF bDisable
g_tl64ScriptNameDisabledNightVisionController = GET_THIS_SCRIPT_NAME()
ELSE
g_tl64ScriptNameDisabledNightVisionController = ""
ENDIF
ENDIF
ENDPROC
FUNC BOOL IS_NIGHT_VISION_CONTROLLER_DISABLED()
IF g_bDisableNightVisionController
AND NOT IS_STRING_NULL_OR_EMPTY(g_tl64ScriptNameDisabledNightVisionController)
AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(GET_HASH_KEY(g_tl64ScriptNameDisabledNightVisionController)) = 0
CASSERTLN(DEBUG_SHOPS, " script \"", g_tl64ScriptNameDisabledNightVisionController, "\" terminated without cleaning up the call to disable night vision controller.")
DISABLE_NIGHT_VISION_CONTROLLER(FALSE)
ENDIF
RETURN g_bDisableNightVisionController
ENDFUNC
FUNC BOOL IS_SAFE_TO_USE_NIGHT_VISION_CONTROLLER()
IF IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID())
RETURN FALSE
ENDIF
// These are not needed any more as we now have a safe way to interact with the controller when on mission
// Also when on mission we don't control the visual aid directly any more
// IF g_bDisableNightVisionController_for_BVS1_and_DAWN_RAID
// OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_SLASHERS(g_FMMC_STRUCT.iAdversaryModeType)
// IF (IS_THIS_ROCKSTAR_MISSION_NEW_VS_BVS1(g_FMMC_STRUCT.iRootContentIDHash)
// OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_DAWN_RAID(g_FMMC_STRUCT.iAdversaryModeType)
// OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_SLASHERS(g_FMMC_STRUCT.iAdversaryModeType))
// RETURN FALSE
// ENDIF
// ENDIF
//
// IF NETWORK_IS_ACTIVITY_SESSION()
// AND IS_THIS_ROCKSTAR_MISSION_GANGOPS_MISSION_OF_TYPE(ciGANGOPS_FLOW_MISSION_PREDATOR)
// RETURN FALSE
// ENDIF
IF GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].bPlayerUsingTurretCam
RETURN FALSE
ENDIF
RETURN TRUE
ENDFUNC
FUNC BOOL IS_SAFE_TO_TURN_ON_NIGHTVISION()
IF IS_PLAYER_SWITCH_IN_PROGRESS()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_HEIST_CONTENT - IS_SAFE_TO_TURN_ON_NIGHTVISION = FALSE - IS_PLAYER_SWITCH_IN_PROGRESS")
RETURN FALSE
ENDIF
/*REMOVED AS THIS SHOULD DISABLE THE ON/OFF CHECKS DONE HERE INSTEAD
IF IS_NIGHT_VISION_CONTROLLER_DISABLED()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_HEIST_CONTENT - IS_SAFE_TO_TURN_ON_NIGHTVISION = FALSE - IS_NIGHT_VISION_CONTROLLER_DISABLED")
RETURN FALSE
ENDIF*/
IF IS_BIT_SET(MPGlobalsAmbience.iAmbBitSet,iABI_BLOCK_TOGGLING_NIGHTVISION_FILTER)
CPRINTLN(DEBUG_PED_COMP, "MANAGE_HEIST_CONTENT - IS_SAFE_TO_TURN_ON_NIGHTVISION = FALSE - iABI_BLOCK_TOGGLING_NIGHTVISION_FILTER")
RETURN FALSE
ENDIF
IF IS_BIT_SET(MPGlobalsAmbience.iAmbBitSet, iABI_DEACTIVATE_NIGHTVISION)
CPRINTLN(DEBUG_PED_COMP, "MANAGE_HEIST_CONTENT - IS_SAFE_TO_TURN_ON_NIGHTVISION = FALSE - iABI_DEACTIVATE_NIGHTVISION")
RETURN FALSE
ENDIF
IF IS_NIGHTVISION_DEACTIVATED_VIA_PIM()
IF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_DEFAULT)
CPRINTLN(DEBUG_PED_COMP, "MANAGE_HEIST_CONTENT - IS_SAFE_TO_TURN_ON_NIGHTVISION = FALSE - IS_NIGHTVISION_DEACTIVATED_VIA_PIM")
RETURN FALSE
ENDIF
ENDIF
IF (g_sShopSettings.iCount_BrowsingInShop > 0)
CPRINTLN(DEBUG_PED_COMP, "MANAGE_HEIST_CONTENT - IS_SAFE_TO_TURN_ON_NIGHTVISION = FALSE - IS_PLAYER_BROWSING_ITEMS_IN_ANY_SHOP")
RETURN FALSE
ENDIF
IF NETWORK_IS_GAME_IN_PROGRESS()
INT iTeam = GET_PLAYER_TEAM(PLAYER_ID())
IF iTeam >= 0 AND iTeam < FMMC_MAX_TEAMS
IF IS_BIT_SET(g_FMMC_STRUCT.sFMMCEndConditions[iTeam].iTeamBitset2, ciBS2_DISABLE_INTERACTION_MENU_NIGHTVISION)
CPRINTLN(DEBUG_PED_COMP, " MANAGE_HEIST_CONTENT - IS_SAFE_TO_TURN_ON_NIGHTVISION = FALSE - ciBS2_DISABLE_INTERACTION_MENU_NIGHTVISION")
RETURN FALSE
ENDIF
ENDIF
ENDIF
IF IS_PLAYER_IN_CORONA()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_HEIST_CONTENT - IS_SAFE_TO_TURN_ON_NIGHTVISION = FALSE - IS_PLAYER_IN_CORONA true")
RETURN FALSE
ENDIF
RETURN TRUE
ENDFUNC
STRUCT MANAGE_VISUALAID_CONTENT_STRUCT
INT iCloneBerdID = 0
INT iCloneHeadID = -1000
BOOL bBrowsing = FALSE
VISUAL_AID_MODES eCloneVisualAid = VISUALAID_DEFAULT
BOOL bDisabledViaPIM = FALSE
BOOL bSwitchInProgress = FALSE
SCRIPT_TIMER stDisabledViaPIMTimer
INT iNightVisSoundID = -1, iThermalSoundID = -1
#IF IS_DEBUG_BUILD
BOOL bDrawDebug = FALSE
TEXT_LABEL_31 tl31VisualAid
SCRIPT_TIMER stReinitDebugText
#ENDIF
ENDSTRUCT
FUNC INT GET_ALTERNATE_PROP_HASH(INT iItemHash)
INT iAltProp
INT iRetNameHash, iRetPropEnum, iRetPropPos
INT iAltPropCount = GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iItemHash)
REPEAT iAltPropCount iAltProp
GET_VARIANT_PROP(iItemHash, iAltProp, iRetNameHash, iRetPropEnum, iRetPropPos)
// Alternative DLC item
IF iRetNameHash != 0 AND iRetNameHash != 1849449579 // 1849449579 = "0"
RETURN iRetNameHash
// Forced on-disk item
ELSE
//eItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, iRetPropEnum)
ENDIF
iAltProp = iAltPropCount+1// Bail
ENDREPEAT
RETURN 0
ENDFUNC
///
PROC MANAGE_VISUALAID_CONTENT(MANAGE_VISUALAID_CONTENT_STRUCT &sData, INT iBerdID = -1, INT iHeadPropID = -1)
BOOL bDeactivateNightVision = FALSE
INT iDLCNameHash, iDLCNameHashHEAD
IF NOT IS_NIGHT_VISION_CONTROLLER_DISABLED()
AND NOT IS_PLAYER_SPECTATING(PLAYER_ID())
AND IS_SAFE_TO_USE_NIGHT_VISION_CONTROLLER()
PED_INDEX pNightVisionPed = PLAYER_PED_ID()
IF DOES_ENTITY_EXIST(g_pShopClonePed)
AND IS_ENTITY_A_PED(g_pShopClonePed)
AND NOT IS_PED_INJURED(g_pShopClonePed)
pNightVisionPed = g_pShopClonePed
ENDIF
INT iTempIDCheck, iTempIDCheck2
IF NOT IS_PED_INJURED(pNightVisionPed)
IF iBerdID = -1
iTempIDCheck = ((GET_PED_DRAWABLE_VARIATION(pNightVisionPed, PED_COMP_BERD) * 1000)+(GET_PED_TEXTURE_VARIATION(pNightVisionPed, PED_COMP_BERD)))
ELSE
iTempIDCheck = iBerdID
ENDIF
IF iHeadPropID = -1
iTempIDCheck2 = ((GET_PED_PROP_INDEX(pNightVisionPed, ANCHOR_HEAD) * 1000)+(GET_PED_PROP_TEXTURE_INDEX(pNightVisionPed, ANCHOR_HEAD)))
ELSE
iTempIDCheck2 = iHeadPropID
ENDIF
ENDIF
VISUAL_AID_MODES eTempVisualAid = GET_PLAYER_VISUAL_AID_OVERRIDE()
BOOL bTempDisabledViaPIM = IS_NIGHTVISION_DEACTIVATED_VIA_PIM()
BOOL bTempSwitchInProgress = IS_PLAYER_SWITCH_IN_PROGRESS()
IF sData.iCloneBerdID != iTempIDCheck
OR sData.iCloneHeadID != iTempIDCheck2
OR IS_BIT_SET(MPGlobalsAmbience.iAmbBitSet, iABI_DO_GEAR_BERD_CHECK)
OR sData.bBrowsing != (g_sShopSettings.iCount_BrowsingInShop > 0)
OR sData.eCloneVisualAid != eTempVisualAid
OR sData.bDisabledViaPIM != bTempDisabledViaPIM
OR sData.bSwitchInProgress != bTempSwitchInProgress
bDeactivateNightVision = TRUE
BOOL bFoundVisAidCondition = FALSE
IF sData.iCloneBerdID != iTempIDCheck
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - UPDATE - sData.iCloneBerdID != iTempIDCheck")
bFoundVisAidCondition = TRUE
ENDIF
IF sData.iCloneHeadID != iTempIDCheck2
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT UPDATE - sData.iCloneHeadID != iTempIDCheck2")
bFoundVisAidCondition = TRUE
ENDIF
IF IS_BIT_SET(MPGlobalsAmbience.iAmbBitSet, iABI_DO_GEAR_BERD_CHECK)
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT UPDATE - IS_BIT_SET(MPGlobalsAmbience.iAmbBitSet, iABI_DO_GEAR_BERD_CHECK)")
bFoundVisAidCondition = TRUE
ENDIF
IF sData.bBrowsing != (g_sShopSettings.iCount_BrowsingInShop > 0)
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT UPDATE - sData.bBrowsing != (g_sShopSettings.iCount_BrowsingInShop > 0)")
bFoundVisAidCondition = TRUE
ENDIF
IF sData.eCloneVisualAid != eTempVisualAid
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT UPDATE - sData.eCloneVisualAid != eTempVisualAid")
bFoundVisAidCondition = TRUE
ENDIF
IF sData.bDisabledViaPIM != bTempDisabledViaPIM
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT UPDATE - sData.bDisabledViaPIM != bTempDisabledViaPIM")
bFoundVisAidCondition = TRUE
ENDIF
IF sData.bSwitchInProgress != bTempSwitchInProgress
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT UPDATE - sData.bSwitchInProgress != bTempSwitchInProgress")
bFoundVisAidCondition = TRUE
ENDIF
IF NOT bFoundVisAidCondition
CASSERTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT UPDATE - bDeactivateNightVision = TRUE, iTempIDCheck:", iTempIDCheck, ", iTempIDCheck2:", iTempIDCheck2, ", eTempVisualAid:", GET_VISUAL_AID_MODE_NAME(eTempVisualAid))
ENDIF
iDLCNameHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pNightVisionPed), ENUM_TO_INT(PED_COMP_BERD), GET_PED_DRAWABLE_VARIATION(pNightVisionPed, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(pNightVisionPed, PED_COMP_BERD))
iDLCNameHashHEAD = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(pNightVisionPed), ENUM_TO_INT(ANCHOR_HEAD), GET_PED_PROP_INDEX(pNightVisionPed, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(pNightVisionPed, ANCHOR_HEAD))
IF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_NIGHT)
OR (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_THERMAL)
#IF IS_DEBUG_BUILD
sData.tl31VisualAid = "update one"
REINIT_NET_TIMER(sData.stReinitDebugText)
#ENDIF
IF IS_SAFE_TO_TURN_ON_NIGHTVISION()
IF NOT (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_THERMAL)
IF NOT GET_REQUESTINGNIGHTVISION()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - Setting player visual aid override NIGHT_VISION turned on - ENABLE_NIGHTVISION(VISUALAID_NIGHT)")
ENABLE_NIGHTVISION(VISUALAID_NIGHT, GET_PLAYER_VISUAL_AID_SOUND())
IF (sData.iNightVisSoundID = -1)
sData.iNightVisSoundID = GET_SOUND_ID()
ENDIF
ENDIF
IF IS_VISUAL_AID_OVERRIDE_MAINTAINED()
AND GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iDLCNameHashHEAD) > 0
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - nightvision override while wearing ALT helmet (visor up)")
INT iAltNameHash = GET_ALTERNATE_PROP_HASH(iDLCNameHashHEAD)
IF iAltNameHash != 0
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltNameHash, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
scrShopPedProp componentItem
GET_SHOP_PED_PROP(iAltNameHash, componentItem)
SAFE_SET_PROP(pNightVisionPed,
INT_TO_ENUM(PED_PROP_POSITION, componentItem.m_eAnchorPoint),
componentItem.m_propIndex,
componentItem.m_textureIndex)
STORE_HELMET_VISOR_PROP_INDICES(pNightVisionPed, componentItem.m_propIndex, componentItem.m_textureIndex, FALSE)
SET_PLAYER_VISOR_PREFERENCE(FALSE)
ENDIF
ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - nightvision override but not wearing ALT helmet (visor down)")
ENDIF
ENDIF
ELSE
IF NOT GET_USINGSEETHROUGH()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - Setting player visual aid override THERMAL_VISION turned on - ENABLE_NIGHTVISION(VISUALAID_NIGHT)")
ENABLE_NIGHTVISION(VISUALAID_THERMAL, GET_PLAYER_VISUAL_AID_SOUND())
IF (sData.iThermalSoundID = -1)
sData.iThermalSoundID = GET_SOUND_ID()
ENDIF
ENDIF
IF IS_VISUAL_AID_OVERRIDE_MAINTAINED()
AND GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iDLCNameHashHEAD) > 0
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - thermalvision override while wearing ALT helmet (visor up)")
INT iAltNameHash = GET_ALTERNATE_PROP_HASH(iDLCNameHashHEAD)
IF iAltNameHash != 0
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iAltNameHash, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
scrShopPedProp componentItem
GET_SHOP_PED_PROP(iAltNameHash, componentItem)
SAFE_SET_PROP(pNightVisionPed,
INT_TO_ENUM(PED_PROP_POSITION, componentItem.m_eAnchorPoint),
componentItem.m_propIndex,
componentItem.m_textureIndex)
STORE_HELMET_VISOR_PROP_INDICES(pNightVisionPed, componentItem.m_propIndex, componentItem.m_textureIndex, FALSE)
SET_PLAYER_VISOR_PREFERENCE(FALSE)
ENDIF
ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - thermalvision override but not wearing ALT helmet (visor down)")
ENDIF
ENDIF
ENDIF
bDeactivateNightVision = FALSE
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - NIGHTVISION - bDeactivateNightVision = FALSE (BERD)")
ENDIF
ELIF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_OFF)
AND IS_VISUAL_AID_OVERRIDE_MAINTAINED()
#IF IS_DEBUG_BUILD
sData.tl31VisualAid = "update two"
REINIT_NET_TIMER(sData.stReinitDebugText)
#ENDIF
IF IS_SAFE_TO_TURN_ON_NIGHTVISION()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - Setting player visual aid override turned off, bMaintainOverride:", GET_STRING_FROM_BOOL(g_sFMMCVisualAid.bMaintainOverride))
ENDIF
IF GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iDLCNameHashHEAD) > 0
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - off override while wearing ALT helmet (visor up)")
ELSE
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - off override but not wearing ALT helmet (visor down)")
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
INT iAltNameHash = GET_ALTERNATE_PROP_HASH(iDLCNameHashHEAD)
IF iAltNameHash != 0
scrShopPedProp componentItem
GET_SHOP_PED_PROP(iAltNameHash, componentItem)
SAFE_SET_PROP(pNightVisionPed,
INT_TO_ENUM(PED_PROP_POSITION, componentItem.m_eAnchorPoint),
componentItem.m_propIndex,
componentItem.m_textureIndex)
STORE_HELMET_VISOR_PROP_INDICES(pNightVisionPed, componentItem.m_propIndex, componentItem.m_textureIndex, FALSE)
SET_PLAYER_VISOR_PREFERENCE(TRUE)
ENDIF
ENDIF
ENDIF
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
#IF IS_DEBUG_BUILD
sData.tl31VisualAid = "update three"
REINIT_NET_TIMER(sData.stReinitDebugText)
#ENDIF
IF IS_SAFE_TO_TURN_ON_NIGHTVISION()
AND NOT IS_AN_AIRLOCK_STRAND_TRANSITION_RUNNING()
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF NOT GET_REQUESTINGNIGHTVISION()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - Setting BERD varition with restriction tag NIGHT_VISION turned on - ENABLE_NIGHTVISION(VISUALAID_NIGHT)")
ENABLE_NIGHTVISION(VISUALAID_NIGHT, VISUALAID_SOUND_ON)
ENDIF
ELSE
IF NOT GET_USINGSEETHROUGH()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - Setting BERD varition with restriction tag THERMAL_VISION turned on - ENABLE_NIGHTVISION(VISUALAID_NIGHT)")
ENABLE_NIGHTVISION(VISUALAID_THERMAL, VISUALAID_SOUND_ON)
ENDIF
ENDIF
bDeactivateNightVision = FALSE
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - NIGHTVISION - bDeactivateNightVision = FALSE (BERD)")
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_PROP))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_PROP))
#IF IS_DEBUG_BUILD
sData.tl31VisualAid = "update four"
REINIT_NET_TIMER(sData.stReinitDebugText)
#ENDIF
IF IS_SAFE_TO_TURN_ON_NIGHTVISION()
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_PROP))
IF NOT GET_REQUESTINGNIGHTVISION()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - Setting ANCHOR_HEAD varition with restriction tag NIGHT_VISION turned on - ENABLE_NIGHTVISION(VISUALAID_NIGHT)")
ENABLE_NIGHTVISION(VISUALAID_NIGHT,VISUALAID_SOUND_ON)
ENDIF
ELSE
IF NOT GET_USINGSEETHROUGH()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - Setting ANCHOR_HEAD varition with restriction tag THERMAL_VISION turned on - ENABLE_NIGHTVISION(VISUALAID_NIGHT)")
ENABLE_NIGHTVISION(VISUALAID_THERMAL, VISUALAID_SOUND_ON)
ENDIF
ENDIF
bDeactivateNightVision = FALSE
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - NIGHTVISION - bDeactivateNightVision = FALSE (ANCHOR_HEAD)")
ENDIF
ELIF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_OFF)
#IF IS_DEBUG_BUILD
sData.tl31VisualAid = "update five"
REINIT_NET_TIMER(sData.stReinitDebugText)
#ENDIF
IF IS_SAFE_TO_TURN_ON_NIGHTVISION()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - Setting player visual aid override turned off, bMaintainOverride:", GET_STRING_FROM_BOOL(g_sFMMCVisualAid.bMaintainOverride))
ENDIF
IF GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iDLCNameHashHEAD) > 0
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - off override while wearing ALT helmet (visor up)")
ELSE
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - off override but not wearing ALT helmet (visor down)")
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
INT iAltNameHash = GET_ALTERNATE_PROP_HASH(iDLCNameHashHEAD)
IF iAltNameHash != 0
scrShopPedProp componentItem
GET_SHOP_PED_PROP(iAltNameHash, componentItem)
SAFE_SET_PROP(pNightVisionPed,
INT_TO_ENUM(PED_PROP_POSITION, componentItem.m_eAnchorPoint),
componentItem.m_propIndex,
componentItem.m_textureIndex)
STORE_HELMET_VISOR_PROP_INDICES(pNightVisionPed, componentItem.m_propIndex, componentItem.m_textureIndex, FALSE)
SET_PLAYER_VISOR_PREFERENCE(TRUE)
ENDIF
ENDIF
ENDIF
ENDIF
#IF IS_DEBUG_BUILD
ELSE
sData.tl31VisualAid = "update six"
REINIT_NET_TIMER(sData.stReinitDebugText)
#ENDIF
ENDIF
sData.iCloneBerdID = iTempIDCheck
sData.iCloneHeadID = iTempIDCheck2
sData.bBrowsing = (g_sShopSettings.iCount_BrowsingInShop > 0)
sData.eCloneVisualAid = eTempVisualAid
sData.bDisabledViaPIM = bTempDisabledViaPIM
sData.bSwitchInProgress = bTempSwitchInProgress
ENDIF
// Turn nightvision off if required
IF (GET_REQUESTINGNIGHTVISION() OR GET_USINGSEETHROUGH())
IF bDeactivateNightVision
OR NOT IS_SAFE_TO_TURN_ON_NIGHTVISION()
OR (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_OFF)
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - NIGHT_VISION turned off")
CDEBUG3LN(DEBUG_PED_COMP, "IS_SAFE_TO_TURN_ON_NIGHTVISION: FALSE - switch in progress: ", IS_PLAYER_SWITCH_IN_PROGRESS(), ", NV controller disabled: ", IS_NIGHT_VISION_CONTROLLER_DISABLED(), ", AMB Deactivate NV: ", IS_BIT_SET(MPGlobalsAmbience.iAmbBitSet, iABI_DEACTIVATE_NIGHTVISION), ", PIM deactivate NV: ", IS_NIGHTVISION_DEACTIVATED_VIA_PIM(), ", browsing: ", (g_sShopSettings.iCount_BrowsingInShop > 0))
IF NOT IS_BIT_SET(MPGlobalsAmbience.iAmbBitSet, iABI_BLOCK_TOGGLING_NIGHTVISION_FILTER)
BOOL bCached_DeactivateNightvision = IS_NIGHTVISION_DEACTIVATED_VIA_PIM()
IF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_OFF)
ENABLE_NIGHTVISION(VISUALAID_OFF, GET_PLAYER_VISUAL_AID_SOUND())
ELSE
ENABLE_NIGHTVISION(VISUALAID_OFF, VISUALAID_SOUND_ON)
ENDIF
iDLCNameHashHEAD = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(pNightVisionPed), ENUM_TO_INT(ANCHOR_HEAD), GET_PED_PROP_INDEX(pNightVisionPed, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(pNightVisionPed, ANCHOR_HEAD))
IF GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iDLCNameHashHEAD) > 0
DEACTIVATE_NIGHTVISION_VIA_PIM(bCached_DeactivateNightvision)
ENDIF
IF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_NIGHT)
OR (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_THERMAL)
IF NOT IS_VISUAL_AID_OVERRIDE_MAINTAINED()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - reset the Visual Aid override from ", GET_VISUAL_AID_MODE_NAME(GET_PLAYER_VISUAL_AID_OVERRIDE()), ", deactivated")
g_sFMMCVisualAid.eOverride = VISUALAID_DEFAULT
ENDIF
ELIF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_OFF)
IF NOT IS_VISUAL_AID_OVERRIDE_MAINTAINED()
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - reset the Visual Aid override from ", GET_VISUAL_AID_MODE_NAME(GET_PLAYER_VISUAL_AID_OVERRIDE()), ", deactivated")
g_sFMMCVisualAid.eOverride = VISUALAID_DEFAULT
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
#IF IS_DEBUG_BUILD
ELSE
sData.tl31VisualAid = "BLOCKED"
REINIT_NET_TIMER(sData.stReinitDebugText)
#ENDIF
ENDIF
IF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_NIGHT)
OR (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_THERMAL)
IF NOT IS_VISUAL_AID_OVERRIDE_MAINTAINED()
IF NOT IS_SAFE_TO_USE_NIGHT_VISION_CONTROLLER()
g_sFMMCVisualAid.eOverride = VISUALAID_DEFAULT
CPRINTLN(DEBUG_PED_COMP, "MANAGE_VISUALAID_CONTENT - reset the Visual Aid override, not safe")
ENDIF
ENDIF
IF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_NIGHT)
AND (sData.iNightVisSoundID != -1)
IF HAS_SOUND_FINISHED(sData.iNightVisSoundID)
AND HAS_SOUND_FINISHED(sData.iThermalSoundID)
IF (GET_PLAYER_VISUAL_AID_SOUND() = VISUALAID_SOUND_ALT)
PLAY_SOUND_FRONTEND(sData.iNightVisSoundID, "Nightvision_Loop", "GTAO_Vision_Modes_SoundSet", FALSE)
ENDIF
ENDIF
IF (sData.iThermalSoundID != -1)
AND NOT HAS_SOUND_FINISHED(sData.iThermalSoundID)
STOP_SOUND(sData.iThermalSoundID)
RELEASE_SOUND_ID(sData.iThermalSoundID)
sData.iThermalSoundID = -1
ENDIF
ELIF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_THERMAL)
AND (sData.iThermalSoundID != -1)
IF HAS_SOUND_FINISHED(sData.iThermalSoundID)
AND HAS_SOUND_FINISHED(sData.iNightVisSoundID)
IF (GET_PLAYER_VISUAL_AID_SOUND() = VISUALAID_SOUND_ALT)
PLAY_SOUND_FRONTEND(sData.iThermalSoundID, "Thermal_Loop", "GTAO_Vision_Modes_SoundSet", FALSE)
ENDIF
ENDIF
IF (sData.iNightVisSoundID != -1)
AND NOT HAS_SOUND_FINISHED(sData.iNightVisSoundID)
STOP_SOUND(sData.iNightVisSoundID)
RELEASE_SOUND_ID(sData.iNightVisSoundID)
sData.iNightVisSoundID = -1
ENDIF
ENDIF
ELSE
IF (sData.iNightVisSoundID != -1)
AND NOT HAS_SOUND_FINISHED(sData.iNightVisSoundID)
STOP_SOUND(sData.iNightVisSoundID)
RELEASE_SOUND_ID(sData.iNightVisSoundID)
sData.iNightVisSoundID = -1
ENDIF
IF (sData.iThermalSoundID != -1)
AND NOT HAS_SOUND_FINISHED(sData.iThermalSoundID)
STOP_SOUND(sData.iThermalSoundID)
RELEASE_SOUND_ID(sData.iThermalSoundID)
sData.iThermalSoundID = -1
ENDIF
ENDIF
IF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_OFF)
AND IS_VISUAL_AID_OVERRIDE_MAINTAINED()
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SWITCH_VISOR)
ELIF (GET_PLAYER_VISUAL_AID_OVERRIDE() = VISUALAID_DEFAULT)
BOOL bToggleDeactivateNightvision = FALSE
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF HAS_NET_TIMER_STARTED(sData.stDisabledViaPIMTimer)
PRINTLN("<NV_TOGGLE> player in vehicle, reset timer")
RESET_NET_TIMER(sData.stDisabledViaPIMTimer)
ENDIF
ELIF NOT HAS_NET_TIMER_STARTED(sData.stDisabledViaPIMTimer)
IF IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_SWITCH_VISOR)
PRINTLN("<NV_TOGGLE> timer off, JUST PRESSED")
REINIT_NET_TIMER(sData.stDisabledViaPIMTimer)
ENDIF
ELSE
IF IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_SWITCH_VISOR)
IF HAS_NET_TIMER_EXPIRED(sData.stDisabledViaPIMTimer, g_iFM_TOGGLE_VISUALAID_TIME_MS)
PED_INDEX pNightVisionPed = PLAYER_PED_ID()
IF DOES_ENTITY_EXIST(g_pShopClonePed)
AND IS_ENTITY_A_PED(g_pShopClonePed)
AND NOT IS_PED_INJURED(g_pShopClonePed)
pNightVisionPed = g_pShopClonePed
ENDIF
iDLCNameHashHEAD = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(pNightVisionPed), ENUM_TO_INT(ANCHOR_HEAD), GET_PED_PROP_INDEX(pNightVisionPed, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(pNightVisionPed, ANCHOR_HEAD))
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
PRINTLN("<NV_TOGGLE> timer on, TIMER EXPIRED ", GET_NET_TIMER_STRING(sData.stDisabledViaPIMTimer), " but helmet isnt a nighvision/thermal helmet")
REINIT_NET_TIMER(sData.stDisabledViaPIMTimer)
ELIF GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iDLCNameHashHEAD) > 0
PRINTLN("<NV_TOGGLE> timer on, TIMER EXPIRED ", GET_NET_TIMER_STRING(sData.stDisabledViaPIMTimer), " but helmet has alternate")
REINIT_NET_TIMER(sData.stDisabledViaPIMTimer)
ELSE
PRINTLN("<NV_TOGGLE> timer on, TIMER EXPIRED ", GET_NET_TIMER_STRING(sData.stDisabledViaPIMTimer))
bToggleDeactivateNightvision = TRUE
ENDIF
ELSE
PRINTLN("<NV_TOGGLE> timer on, timer pending ", GET_NET_TIMER_STRING(sData.stDisabledViaPIMTimer))
ENDIF
ELSE
PRINTLN("<NV_TOGGLE> timer on, NOT PRESSED")
RESET_NET_TIMER(sData.stDisabledViaPIMTimer)
ENDIF
ENDIF
IF bToggleDeactivateNightvision
DEACTIVATE_NIGHTVISION_VIA_PIM(NOT IS_NIGHTVISION_DEACTIVATED_VIA_PIM())
RESET_NET_TIMER(sData.stDisabledViaPIMTimer)
ENDIF
ENDIF
#IF IS_DEBUG_BUILD
IF sData.bDrawDebug
PED_INDEX pNightVisionPed = PLAYER_PED_ID()
IF DOES_ENTITY_EXIST(g_pShopClonePed)
AND IS_ENTITY_A_PED(g_pShopClonePed)
AND NOT IS_PED_INJURED(g_pShopClonePed)
pNightVisionPed = g_pShopClonePed
ENDIF
iDLCNameHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pNightVisionPed), ENUM_TO_INT(PED_COMP_BERD), GET_PED_DRAWABLE_VARIATION(pNightVisionPed, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(pNightVisionPed, PED_COMP_BERD))
iDLCNameHashHEAD = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(pNightVisionPed), ENUM_TO_INT(ANCHOR_HEAD), GET_PED_PROP_INDEX(pNightVisionPed, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(pNightVisionPed, ANCHOR_HEAD))
INT iRow = 0
VECTOR VecCoord = GET_PED_BONE_COORDS(pNightVisionPed, BONETAG_HEAD, <<0.0, 0.0, 0.0>>)
INT iRed = 0, iGreen = 0, iBlue = 255, iAlpha = 255
TEXT_LABEL_63 str = ""
HUD_COLOURS eHudColour = HUD_COLOUR_BLUE
IF GET_USINGSEETHROUGH()
eHudColour = HUD_COLOUR_PURE_WHITE
ENDIF
//
str = sData.tl31VisualAid
IF HAS_NET_TIMER_STARTED(sData.stReinitDebugText)
str += " "
str += GET_STRING_FROM_FLOAT(TO_FLOAT(GET_NET_TIMER_DIFFERENCE_WITH_CURRENT_TIME(sData.stReinitDebugText))/1000.0)
ENDIF
GET_HUD_COLOUR(eHudColour, iRed, iGreen, iBlue, iAlpha)
DRAW_DEBUG_TEXT_WITH_OFFSET(str, VecCoord, 000, iRow*10, iRed, iGreen, iBlue, iAlpha)
iRow++
//
str = "override:"
str += GET_VISUAL_AID_MODE_NAME(GET_PLAYER_VISUAL_AID_OVERRIDE())
GET_HUD_COLOUR(eHudColour, iRed, iGreen, iBlue, iAlpha)
DRAW_DEBUG_TEXT_WITH_OFFSET(str, VecCoord, 000, iRow*10, iRed, iGreen, iBlue, iAlpha)
iRow++
//
str = " "
IF g_sFMMCVisualAid.bMaintainOverride
str += "MAINTAIN, \""
ELSE
str += "no-maintain, \""
ENDIF
str += g_sFMMCVisualAid.tl31OverrideScriptName
str += "\""
GET_HUD_COLOUR(eHudColour, iRed, iGreen, iBlue, iAlpha)
DRAW_DEBUG_TEXT_WITH_OFFSET(str, VecCoord, 000, iRow*10, iRed, iGreen, iBlue, iAlpha)
iRow++
//
str = " "
str += "useSound:"
str += GET_VISUAL_AID_SOUND_NAME(GET_PLAYER_VISUAL_AID_SOUND())
GET_HUD_COLOUR(eHudColour, iRed, iGreen, iBlue, iAlpha)
DRAW_DEBUG_TEXT_WITH_OFFSET(str, VecCoord, 000, iRow*10, iRed, iGreen, iBlue, iAlpha)
iRow++
//
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
str = "NIGHT_VISION:"
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
str = "THERMAL_VISION:"
ELSE
str = "UNKNOWN_VISION:"
ENDIF
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
OR DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
str = "NIGHT_VISION:"
ELIF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_THERMAL_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
str = "THERMAL_VISION:"
ELSE
str = "UNKNOWN_VISION:"
ENDIF
IF GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(iDLCNameHashHEAD) > 0
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHashHEAD, DLC_RESTRICTION_TAG_ALT_HELMET, ENUM_TO_INT(SHOP_PED_PROP))
str += "ALT helmet (visor up)"
ELSE
str += "NOT ALT helmet (visor down)"
ENDIF
ELSE
str += "no alt"
ENDIF
ELSE
str = "no visual mode"
ENDIF
GET_HUD_COLOUR(eHudColour, iRed, iGreen, iBlue, iAlpha)
DRAW_DEBUG_TEXT_WITH_OFFSET(str, VecCoord, 000, iRow*10, iRed, iGreen, iBlue, iAlpha)
iRow++
//
str = "deactivated in pim:"
str += GET_STRING_FROM_BOOL(IS_NIGHTVISION_DEACTIVATED_VIA_PIM())
GET_HUD_COLOUR(eHudColour, iRed, iGreen, iBlue, iAlpha)
DRAW_DEBUG_TEXT_WITH_OFFSET(str, VecCoord, 000, iRow*10, iRed, iGreen, iBlue, iAlpha)
iRow++
ENDIF
#ENDIF
ENDPROC
PROC REMOVE_PED_MASK(PED_INDEX pedID)
SET_PED_COMPONENT_VARIATION(pedID, PED_COMP_BERD, 0, 0)
// Pogo glasses need to be tied to the pogo mask.
INT iDLCBerdHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_BERD), GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_BERD))
INT iDLCEyesHash = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(pedID), ENUM_TO_INT(ANCHOR_EYES), GET_PED_PROP_INDEX(pedID, ANCHOR_EYES), GET_PED_PROP_TEXTURE_INDEX(pedID, ANCHOR_EYES))
IF iDLCBerdHash = HASH("DLC_MP_ARENA_M_BERD_13_0")
OR iDLCBerdHash = HASH("DLC_MP_ARENA_F_BERD_13_0")
// Force glasses on
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCEyesHash, DLC_RESTRICTION_TAG_ARENA_DRAW_0, ENUM_TO_INT(SHOP_PED_PROP))
scrShopPedProp propItem
INIT_SHOP_PED_PROP(propItem)
IF iDLCBerdHash = HASH("DLC_MP_ARENA_M_BERD_13_0")
GET_SHOP_PED_QUERY_PROP(HASH("DLC_MP_ARENA_M_PEYES_0_0"), propItem)
ELSE
GET_SHOP_PED_QUERY_PROP(HASH("DLC_MP_ARENA_F_PEYES_0_0"), propItem)
ENDIF
SET_PED_PROP_INDEX(pedID, ANCHOR_EYES, propItem.m_propIndex, propItem.m_textureIndex)
ENDIF
ELSE
// Force glasses off
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCEyesHash, DLC_RESTRICTION_TAG_ARENA_DRAW_0, ENUM_TO_INT(SHOP_PED_PROP))
CLEAR_PED_PROP(pedID, ANCHOR_EYES)
ENDIF
ENDIF
ENDPROC
PROC REMOVE_MP_PED_SCUBA_TANK(PED_INDEX pedID)
IF IS_PED_WEARING_SCUBA_TANK(pedID)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(pedID)
IF ePedModel = MP_M_FREEMODE_01
SET_PED_COMPONENT_VARIATION(pedID, PED_COMP_SPECIAL, 15, 0)
ELIF ePedModel = MP_F_FREEMODE_01
SET_PED_COMPONENT_VARIATION(pedID, PED_COMP_SPECIAL, 3, 0)
ENDIF
ENDIF
ENDPROC
PROC REMOVE_MP_HEIST_GEAR(PED_INDEX pedID, MP_HEIST_GEAR_ENUM eGear,int iplayerIndex = -1,MP_OUTFIT_MASK_ENUM eMask = OUTFIT_MASK_NONE)
DEBUG_PRINTCALLSTACK()
if iplayerIndex = -1
iPlayerIndex = NATIVE_TO_INT(NETWORK_GET_PLAYER_INDEX_FROM_PED(pedID) )
endif
bool bReApplyHair = FALSE
INT i
REPEAT NUM_PED_COMPONENTS i
g_sOutfitsData.iComponentDrawableID[i] = -1
g_sOutfitsData.iComponentTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(g_sOutfitsData.iPropDrawableID) i
g_sOutfitsData.iPropDrawableID[i] = -1
g_sOutfitsData.iPropTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(g_sOutfitsData.iDLCTattooOverlay) i
g_sOutfitsData.iDLCTattooOverlay[i] = -1
ENDREPEAT
BOOL bBerdSetTo0 = FALSE
IF GET_MP_HEIST_GEAR_DATA(pedID,g_sOutfitsData,eGear,eMask)
REPEAT NUM_PED_COMPONENTS i
IF g_sOutfitsData.iComponentDrawableID[i] != -1
IF GET_PED_DRAWABLE_VARIATION(pedID, int_to_enum(PED_COMPONENT,i)) = g_sOutfitsData.iComponentDrawableID[i]
AND GET_PED_TEXTURE_VARIATION(pedID, int_to_enum(PED_COMPONENT,i)) = g_sOutfitsData.iComponentTextureID[i]
if i = enum_to_int(PED_COMP_HAIR)
bReApplyHair = TRUE
endif
IF i = ENUM_TO_INT(PED_COMP_BERD)
bBerdSetTo0 = TRUE
ENDIF
SET_PED_COMPONENT_VARIATION(pedID, int_to_enum(PED_COMPONENT,i), 0, 0)
ENDIF
ENDIF
ENDREPEAT
REPEAT COUNT_OF(g_sOutfitsData.iPropDrawableID) i
IF g_sOutfitsData.iPropDrawableID[i] != -1
and g_sOutfitsData.iPropDrawableID[i] != 255
IF GET_PED_PROP_INDEX(pedID, int_to_enum(PED_PROP_POSITION,i)) = g_sOutfitsData.iPropDrawableID[i]
AND GET_PED_PROP_TEXTURE_INDEX(pedID, int_to_enum(PED_PROP_POSITION,i)) = g_sOutfitsData.iPropTextureID[i]
CLEAR_PED_PROP(pedID, int_to_enum(PED_PROP_POSITION,i))
ENDIF
ENDIF
ENDREPEAT
// Re-apply hair
IF bReApplyHair
IF NOT IS_FAKE_MULTIPLAYER_MODE_SET()
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_USING_HAIR_SA_STAT)
SET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_HAIR, INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO_SA, g_iPedComponentSlot)), FALSE)
CPRINTLN(DEBUG_PED_COMP, "[REMOVE_MP_HEIST_GEAR][SET_PED_COMP_ITEM_CURRENT_MP]: MP_STAT_CHAR_FM_STORED_HAIRDO_SA ")
ELSE
SET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_HAIR, INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO, g_iPedComponentSlot)), FALSE)
CPRINTLN(DEBUG_PED_COMP, "[REMOVE_MP_HEIST_GEAR][SET_PED_COMP_ITEM_CURRENT_MP]: MP_STAT_CHAR_FM_STORED_HAIRDO ")
ENDIF
ENDIF
ENDIF
IF (eGear = HEIST_GEAR_NIGHTVISION)
IF bBerdSetTo0
IF iPlayerIndex != -1
and iPlayerIndex != native_to_int(player_ID()) //equal to player
if NETWORK_HAS_CACHED_PLAYER_HEAD_BLEND_DATA(INT_TO_PLAYERINDEX(iPlayerIndex))
CPRINTLN(DEBUG_PED_COMP, "[REMOVE_MP_HEIST_GEAR][NETWORK_APPLY_CACHED_PLAYER_HEAD_BLEND_DATA]: player index ",iPlayerIndex)
NETWORK_APPLY_CACHED_PLAYER_HEAD_BLEND_DATA(pedID,INT_TO_PLAYERINDEX(iPlayerIndex) )
endif
ELSE
RESET_PLAYER_HEAD_BLEND_TO_NORM(pedID)
endif
ENDIF
DISABLE_NIGHT_VISION_CONTROLLER(FALSE)
ENABLE_NIGHTVISION(VISUALAID_OFF)
ENDIF
ENDIF
ENDPROC
///PURPOSE: checks if heist gear is equipped
/// PED_INDEX pedID - the ped your checking
/// MP_HEIST_GEAR_ENUM eGear - the gear enum your checking
/// MP_OUTFIT_MASK_ENUM eMask - If the gear your checking is HEIST_GEAR_CORONA_MASK you'll need to specify the mask
FUNC BOOL IS_MP_HEIST_GEAR_EQUIPPED(PED_INDEX pedID, MP_HEIST_GEAR_ENUM eGear,MP_OUTFIT_MASK_ENUM eMask = OUTFIT_MASK_NONE)
// To please the assert - url:bugstar:7458226
IF IS_PED_INJURED(pedID)
ENDIF
MP_OUTFITS_DATA sHeistGearData
INT i
REPEAT NUM_PED_COMPONENTS i
sHeistGearData.iComponentDrawableID[i] = -1
sHeistGearData.iComponentTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sHeistGearData.iPropDrawableID) i
sHeistGearData.iPropDrawableID[i] = -1
sHeistGearData.iPropTextureID[i] = -1
ENDREPEAT
//check a mask when a mask has been specified
if eGear = HEIST_GEAR_CORONA_MASK
and eMask != OUTFIT_MASK_NONE
if IS_MP_HEIST_MASK_EQUIPPED(pedID,eMask)
RETURN TRUE
endif
else
IF GET_MP_HEIST_GEAR_DATA(pedID,sHeistGearData,eGear,eMask)
REPEAT NUM_PED_COMPONENTS i
IF sHeistGearData.iComponentDrawableID[i] != -1
IF GET_PED_DRAWABLE_VARIATION(pedID, int_to_enum(PED_COMPONENT,i)) = sHeistGearData.iComponentDrawableID[i]
AND GET_PED_TEXTURE_VARIATION(pedID, int_to_enum(PED_COMPONENT,i)) = sHeistGearData.iComponentTextureID[i]
CPRINTLN(DEBUG_PED_COMP, "[IS_MP_HEIST_GEAR_EQUIPPED]Gear equipped: ",enum_to_int(egear))
RETURN TRUE
ENDIF
ENDIF
ENDREPEAT
REPEAT COUNT_OF(sHeistGearData.iPropDrawableID) i
IF sHeistGearData.iPropDrawableID[i] != -1
and sHeistGearData.iPropDrawableID[i] != 255
IF GET_PED_PROP_INDEX(pedID, int_to_enum(PED_PROP_POSITION,i)) = sHeistGearData.iPropDrawableID[i]
AND GET_PED_PROP_TEXTURE_INDEX(pedID, int_to_enum(PED_PROP_POSITION,i)) = sHeistGearData.iPropTextureID[i]
CPRINTLN(DEBUG_PED_COMP, "[IS_MP_HEIST_GEAR_EQUIPPED]Gear equipped: ",enum_to_int(egear))
RETURN TRUE
ENDIF
ENDIF
ENDREPEAT
ENDIF
endif
RETURN FALSE
ENDFUNC
//PURPOSE: Retursn TRUE if the mp ped is visibly wearing a parachute
FUNC BOOL IS_MP_PED_WEARING_PARACHUTE(PED_INDEX pedID)
INT iDrawable = GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_HAND)
INT iDLCHandHash = -1
SWITCH GET_ENTITY_MODEL(pedID)
CASE MP_M_FREEMODE_01
// Ones we never added the tag to.
IF (iDrawable >= 1 AND iDrawable <= 19)
OR (iDrawable >= 21 AND iDrawable <= 29)
CPRINTLN(DEBUG_PED_COMP, "IS_MP_PED_WEARING_PARACHUTE - male hand [", iDrawable, "] is one we never added the tag to.")
RETURN TRUE
ENDIF
iDLCHandHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_HAND), iDrawable, GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_HAND))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCHandHash, DLC_RESTRICTION_TAG_PARACHUTE, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "IS_MP_PED_WEARING_PARACHUTE - male hand [", iDrawable, "] is tagged with DLC_RESTRICTION_TAG_PARACHUTE.")
RETURN TRUE
ENDIF
BREAK
CASE MP_F_FREEMODE_01
// Ones we never added the tag to.
IF (iDrawable >= 1 AND iDrawable <= 19)
OR (iDrawable >= 21 AND iDrawable <= 29)
CPRINTLN(DEBUG_PED_COMP, "IS_MP_PED_WEARING_PARACHUTE - female hand [", iDrawable, "] is one we never added the tag to.")
RETURN TRUE
ENDIF
iDLCHandHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_HAND), iDrawable, GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_HAND))
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCHandHash, DLC_RESTRICTION_TAG_PARACHUTE, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "IS_MP_PED_WEARING_PARACHUTE - female hand [", iDrawable, "] is tagged with DLC_RESTRICTION_TAG_PARACHUTE.")
RETURN TRUE
ENDIF
BREAK
ENDSWITCH
CPRINTLN(DEBUG_PED_COMP, "IS_MP_PED_WEARING_PARACHUTE - PED_COMP_HAND iDrawable is ", iDrawable, ", not a parachute.")
/*
if ePedModel = MP_M_FREEMODE_01
// Ones we never added the tag to.
IF (iDrawable >= 1 AND iDrawable <= 19)
OR (iDrawable >= 21 AND iDrawable <= 29)
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]PARACHUTE on 1")
bParachuteOn = true
ELSE
iDLCHandHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_M_FREEMODE_01, GET_PED_COMP_ITEM_CURRENT_MP(sApplyOutfitData.pedID, COMP_TYPE_HAND), COMP_TYPE_HAND, 3)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCHandHash, DLC_RESTRICTION_TAG_PARACHUTE, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]Tagged PARACHUTE on 2")
bParachuteOn = true
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]not Tagged PARACHUTE on 3")
ENDIF
ENDIF
elif ePedModel = MP_F_FREEMODE_01
// Ones we never added the tag to.
IF (iDrawable >= 1 AND iDrawable <= 19)
OR (iDrawable >= 21 AND iDrawable <= 29)
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]PARACHUTE on 4")
bParachuteOn = true
ELSE
iDLCHandHash = GET_NAME_HASH_FROM_PED_COMP_ITEM(MP_F_FREEMODE_01, GET_PED_COMP_ITEM_CURRENT_MP(sApplyOutfitData.pedID, COMP_TYPE_HAND), COMP_TYPE_HAND, 4)
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCHandHash, DLC_RESTRICTION_TAG_PARACHUTE, ENUM_TO_INT(SHOP_PED_COMPONENT))
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]Tagged PARACHUTE on 5")
bParachuteOn = true
Else
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]not Tagged PARACHUTE on 6")
endif
ENDIF
ENDIF
*/
RETURN FALSE
ENDFUNC
//PURPOSE: Loops through the Heist Gear and removes whatever is equipped.
PROC REMOVE_CURRENT_HEIST_GEAR(PED_INDEX thisPed)
INT i
REPEAT ENUM_TO_INT(GEAR_MAX_AMOUNT) i
IF IS_MP_HEIST_GEAR_EQUIPPED(thisPed, INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i))
REMOVE_MP_HEIST_GEAR(thisPed, INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i))
ENDIF
ENDREPEAT
ENDPROC
//PURPOSE: Loops through the Heist Gear and removes whatever is equipped on the players head (masks, ear pieces, etc).
PROC REMOVE_CURRENT_HEAD_HEIST_GEAR(PED_INDEX thisPed)
INT i
REPEAT ENUM_TO_INT(GEAR_MAX_AMOUNT) i
IF IS_MP_HEIST_GEAR_EQUIPPED(thisPed, INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i))
IF INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_WHITE_HOCKEY_MASK
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_BALACLAVA
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_REBREATHER
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_NIGHTVISION
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_EARPIECE_1
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_EARPIECE_2
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_EARPIECE_3
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_RADIO_HEADSET
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_GAS_MASK
OR INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i) = HEIST_GEAR_CORONA_MASK
CPRINTLN(DEBUG_MISSION, "[SET_MP_HEIST_GEAR] REMOVE_CURRENT_HEAD_HEIST_GEAR gear: ",i)
REMOVE_MP_HEIST_GEAR(thisPed, INT_TO_ENUM(MP_HEIST_GEAR_ENUM, i))
ENDIF
ENDIF
ENDREPEAT
ENDPROC
PROC SET_MP_HEIST_GEAR(PED_INDEX pedID, MP_HEIST_GEAR_ENUM eGear,int iPlayerIndex = -1)
DEBUG_PRINTCALLSTACK()
CPRINTLN(DEBUG_MISSION, "[SET_MP_HEIST_GEAR] Set Heist Gear ", GET_MP_HEIST_GEAR_NAME(eGear), " \"", GET_STRING_FROM_TEXT_FILE(GET_MP_HEIST_GEAR_NAME(eGear)), "\"")
MP_OUTFITS_DATA sOutfitsData
MP_OUTFIT_MASK_ENUM eMask = OUTFIT_MASK_NONE
if iplayerIndex = -1
iPlayerIndex = NATIVE_TO_INT(NETWORK_GET_PLAYER_INDEX_FROM_PED(pedID) )
endif
int i
REPEAT NUM_PED_COMPONENTS i
sOutfitsData.iComponentDrawableID[i] = -1
sOutfitsData.iComponentTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iPropDrawableID) i
sOutfitsData.iPropDrawableID[i] = -1
sOutfitsData.iPropTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iDLCTattooOverlay) i
sOutfitsData.iDLCTattooOverlay[i] = -1
ENDREPEAT
IF GET_MP_HEIST_GEAR_DATA(pedID,sOutfitsData,eGear,eMask)
IF eGear = HEIST_GEAR_BALACLAVA
OR eGear = HEIST_GEAR_NIGHTVISION
OR eGear = HEIST_GEAR_REBREATHER
REMOVE_CURRENT_HEAD_HEIST_GEAR(pedID)
SET_HEAD_BLEND_UPDATE(pedID,sOutfitsData,iPlayerIndex)
ENDIF
IF (eGear = HEIST_GEAR_CORONA_MASK)
IF eMask != OUTFIT_MASK_NONE
//Make sure that the mask that get applied arent clipping other items on the head.
IF GET_STYLE_FROM_MASK(ENUM_TO_INT(eMask)) = MASK_BANDANAS
// keep head and eye props.
sOutfitsData.iPropDrawableID[ANCHOR_EARS] = -1
CPRINTLN(DEBUG_MISSION, "[SET_MP_HEIST_GEAR] MASK_BANDANAS only remove eyes prop")
ELIF GET_STYLE_FROM_MASK(ENUM_TO_INT(eMask)) = MASK_HELMETS
// All props (minus head) to -1
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = -1
sOutfitsData.iPropDrawableID[ANCHOR_EARS] = -1
CPRINTLN(DEBUG_MISSION, "[SET_MP_HEIST_GEAR] MASK_HELMETS remove eyes and ears prop")
ELSE
// Remove all head / ear / eye props
sOutfitsData.iPropDrawableID[ANCHOR_EYES] = -1
sOutfitsData.iPropDrawableID[ANCHOR_EARS] = -1
sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = -1
CPRINTLN(DEBUG_MISSION, "[SET_MP_HEIST_GEAR] Remove all head / ear / eye props mask is being applied")
endif
// Remove earings
IF (GET_ENTITY_MODEL(pedID) = MP_F_FREEMODE_01)
IF IS_ITEM_EARRINGS(GET_ENTITY_MODEL(pedID) , COMP_TYPE_TEETH, GET_PED_COMP_ITEM_CURRENT_MP(pedID,COMP_TYPE_TEETH))
sOutfitsData.iComponentDrawableID[COMP_TYPE_TEETH] = 0
sOutfitsData.iComponentTextureID[COMP_TYPE_TEETH] = 0
CPRINTLN(DEBUG_MISSION, "[SET_MP_HEIST_GEAR] Remove earings")
ENDIF
ENDIF
ENDIF
SET_HEAD_BLEND_UPDATE(pedID,sOutfitsData,iPlayerIndex)
ELIF eGear = HEIST_GEAR_REBREATHER
CPRINTLN(DEBUG_MISSION, "[SET_MP_HEIST_GEAR] Rebreather being applied, setting underwater breath remaining to 100")
SET_PLAYER_UNDERWATER_BREATH_PERCENT_REMAINING(NETWORK_GET_PLAYER_INDEX_FROM_PED(pedID), 100.0)
endif
REPEAT NUM_PED_COMPONENTS i
IF sOutfitsData.iComponentDrawableID[i] != -1
CPRINTLN(DEBUG_PED_COMP, "SET_MP_HEIST_GEAR - SET VARIATIONS - SET_PED_COMPONENT_VARIATION - PED_COMPONENT: ", i)
SET_PED_COMPONENT_VARIATION(pedID, INT_TO_ENUM(PED_COMPONENT, i), sOutfitsData.iComponentDrawableID[i], sOutfitsData.iComponentTextureID[i])
ENDIF
ENDREPEAT
REPEAT COUNT_OF(sOutfitsData.iPropDrawableID) i
IF sOutfitsData.iPropDrawableID[i] != -1
and sOutfitsData.iPropDrawableID[i] != 255
CPRINTLN(DEBUG_PED_COMP, "SET_MP_HEIST_GEAR - SET PROP - SET_PED_PROP_INDEX - PED_COMPONENT: ", i)
SET_PED_PROP_INDEX(pedID, INT_TO_ENUM(PED_PROP_POSITION, i), sOutfitsData.iPropDrawableID[i], sOutfitsData.iPropTextureID[i], TRUE)
ENDIF
ENDREPEAT
ENDIF
ENDPROC
/// PURPOSE: Returns TRUE if the outfit passed has a radio headset
FUNC BOOL DOES_MP_OUTFIT_HAVE_RADIO_HEADSET(MP_OUTFIT_ENUM eOutfit)
SWITCH eOutfit
CASE OUTFIT_HEIST_STEALTH_PILOT_0
CASE OUTFIT_HEIST_STEALTH_PILOT_1
CASE OUTFIT_HEIST_STEALTH_PILOT_2
CASE OUTFIT_HEIST_CASUAL_PILOT_0
CASE OUTFIT_HEIST_CASUAL_PILOT_1
CASE OUTFIT_HEIST_CASUAL_PILOT_2
CASE OUTFIT_HEIST_FLIGHT_SUIT_1
CASE OUTFIT_HEIST_FLIGHT_SUIT_2
CASE OUTFIT_HEIST_FLIGHT_SUIT_3
RETURN TRUE
ENDSWITCH
RETURN FALSE
ENDFUNC
FUNC BOOL PRELOAD_MP_HEIST_GEAR(PED_INDEX pedID, MP_HEIST_GEAR_ENUM eGear)
MP_OUTFITS_DATA sHeistGearData
MP_OUTFIT_MASK_ENUM eMask = OUTFIT_MASK_NONE
INT i
REPEAT NUM_PED_COMPONENTS i
sHeistGearData.iComponentDrawableID[i] = -1
sHeistGearData.iComponentTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(sHeistGearData.iPropDrawableID) i
sHeistGearData.iPropDrawableID[i] = -1
sHeistGearData.iPropTextureID[i] = -1
ENDREPEAT
IF GET_MP_HEIST_GEAR_DATA(pedID,sHeistGearData,eGear,eMask)
REPEAT NUM_PED_COMPONENTS i
IF sHeistGearData.iComponentDrawableID[i] != -1
IF NOT HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(pedID)
SET_PED_PRELOAD_VARIATION_DATA(pedID, INT_TO_ENUM(PED_COMPONENT, i), sHeistGearData.iComponentDrawableID[i], sHeistGearData.iComponentTextureID[i])
endif
ENDIF
ENDREPEAT
REPEAT COUNT_OF(sHeistGearData.iPropDrawableID) i
IF sHeistGearData.iPropDrawableID[i] != -1
and sHeistGearData.iPropDrawableID[i] != 255
IF NOT HAS_PED_PRELOAD_PROP_DATA_FINISHED(pedID)
SET_PED_PRELOAD_PROP_DATA(pedID, INT_TO_ENUM(PED_PROP_POSITION, i), sHeistGearData.iPropDrawableID[i],sHeistGearData.iPropTextureID[i])
ENDIF
ENDIF
ENDREPEAT
ENDIF
bool bPreload = true
if not HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(pedID)
CPRINTLN(DEBUG_MISSION,"PRELOAD_MP_HEIST_GEAR - not HAS_PED_PRELOAD_VARIATION_DATA_FINISHED - ", enum_to_int(eGear))
bPreload = false
endif
if not HAS_PED_PRELOAD_PROP_DATA_FINISHED(pedID)
CPRINTLN(DEBUG_MISSION,"PRELOAD_MP_HEIST_GEAR - not HAS_PED_PRELOAD_PROP_DATA_FINISHED - ", enum_to_int(eGear))
bPreload = false
endif
CPRINTLN(DEBUG_MISSION,"PRELOAD_MP_HEIST_GEAR: ", bPreload)
RETURN bPreload
ENDFUNC
FUNC BOOL IS_PED_WEARING_A_HELMET(PED_INDEX pedID)
//No Helmet
IF NOT IS_PED_WEARING_HELMET(pedID)
AND NOT IS_ITEM_A_HELMET(GET_ENTITY_MODEL(pedID), COMP_TYPE_PROPS, GET_PED_COMP_ITEM_CURRENT_MP(pedID, COMP_TYPE_PROPS, ENUM_TO_INT(ANCHOR_HEAD)))
RETURN FALSE
ENDIF
RETURN TRUE
ENDFUNC
ENUM CUSTOM_CREW_LOGO_TYPE_ENUM
CUSTOM_CREW_LOGO_DEFAULT = 0,
CUSTOM_CREW_LOGO_FALLBACK,
CUSTOM_CREW_LOGO_PRESET
ENDENUM
FUNC STRING GET_CUSTOM_CREW_LOGO_TXD_NAME_FOR_PLAYER(PLAYER_INDEX playerID, CUSTOM_CREW_LOGO_TYPE_ENUM eType = CUSTOM_CREW_LOGO_DEFAULT)
UNUSED_PARAMETER(playerID)
UNUSED_PARAMETER(eType)
RETURN "MPClubEmblemSmall"
ENDFUNC
FUNC STRING GET_CUSTOM_CREW_LOGO_TXD_TEXTURE_FOR_PLAYER(PLAYER_INDEX playerID, CUSTOM_CREW_LOGO_TYPE_ENUM eType = CUSTOM_CREW_LOGO_DEFAULT)
/*
The shop controller script is responsible for streaming in the custom crew logo TXD for the local players gang and setting g_tlCustomCrewLogoTXDTexture.
See PROCESS_CUSTOM_CREW_LOGO().
*/
IF playerID = INVALID_PLAYER_INDEX()
RETURN ""
ENDIF
IF eType = CUSTOM_CREW_LOGO_FALLBACK
RETURN "MPClubPreset1"
ENDIF
// If we have a gang boss use their ped ID instead
PLAYER_INDEX playerGangBoss = GB_GET_THIS_PLAYER_GANG_BOSS(playerID)
IF playerGangBoss != INVALID_PLAYER_INDEX()
playerID = playerGangBoss
ENDIF
IF IS_BIT_SET(g_iCustomCrewLogoUsePresetBitset, NATIVE_TO_INT(playerID))
OR eType = CUSTOM_CREW_LOGO_PRESET
RETURN Get_String_From_TextLabel(g_tlCustomCrewLogoTXDTexture[NATIVE_TO_INT(playerID)])
ELSE
RETURN ""
ENDIF
ENDFUNC
// For Craig: Added bUseDefaultMask for 2186455, VS player owned outfits where we want the mask but not default to the balaclava if there is none
ENUM MP_OUTFIT_ROLE
OUTFIT_ROLE_NONE = -1
,OUTFIT_ROLE_GB_PRESIDENT
,OUTFIT_ROLE_GB_VICE_PRESIDENT
,OUTFIT_ROLE_GB_ROAD_CAPTAIN
,OUTFIT_ROLE_GB_SERGEANT_AT_ARMS
,OUTFIT_ROLE_GB_ENFORCER
,OUTFIT_ROLE_GB_PROSPECT
ENDENUM
FUNC BOOL GET_TATTOO_PRESET_FOR_MP_OUTFIT_ROLE(INT iDLCJbibHash, MP_OUTFIT_ROLE eOutfitRole, INT &iCollection, INT &iPreset)
UNUSED_PARAMETER(iDLCJbibHash)
UNUSED_PARAMETER(eOutfitRole)
iCollection = 0
iPreset = 0
SWITCH iDLCJbibHash
////////////////////////////////////
/// MALE
CASE HASH("DLC_MP_BIKER_M_JBIB_22_0")
CASE HASH("DLC_MP_BIKER_M_JBIB_22_1")
CASE HASH("DLC_MP_BIKER_M_JBIB_22_2")
CASE HASH("DLC_MP_BIKER_M_JBIB_22_3")
SWITCH eOutfitRole
CASE OUTFIT_ROLE_GB_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_000_M") BREAK
CASE OUTFIT_ROLE_GB_VICE_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_001_M") BREAK
CASE OUTFIT_ROLE_GB_SERGEANT_AT_ARMS iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_002_M") BREAK
CASE OUTFIT_ROLE_GB_ROAD_CAPTAIN iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_003_M") BREAK
CASE OUTFIT_ROLE_GB_PROSPECT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_004_M") BREAK
CASE OUTFIT_ROLE_GB_ENFORCER iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_015_M") BREAK
ENDSWITCH
BREAK
CASE HASH("DLC_MP_BIKER_M_JBIB_23_0")
CASE HASH("DLC_MP_BIKER_M_JBIB_23_1")
CASE HASH("DLC_MP_BIKER_M_JBIB_23_2")
SWITCH eOutfitRole
CASE OUTFIT_ROLE_GB_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_005_M") BREAK
CASE OUTFIT_ROLE_GB_VICE_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_006_M") BREAK
CASE OUTFIT_ROLE_GB_SERGEANT_AT_ARMS iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_007_M") BREAK
CASE OUTFIT_ROLE_GB_ROAD_CAPTAIN iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_008_M") BREAK
CASE OUTFIT_ROLE_GB_PROSPECT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_009_M") BREAK
CASE OUTFIT_ROLE_GB_ENFORCER iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_016_M") BREAK
ENDSWITCH
BREAK
CASE HASH("DLC_MP_BIKER_M_JBIB_24_0")
CASE HASH("DLC_MP_BIKER_M_JBIB_24_1")
CASE HASH("DLC_MP_BIKER_M_JBIB_24_2")
CASE HASH("DLC_MP_BIKER_M_JBIB_24_3")
CASE HASH("DLC_MP_BIKER_M_JBIB_24_4")
CASE HASH("DLC_MP_BIKER_M_JBIB_24_5")
SWITCH eOutfitRole
CASE OUTFIT_ROLE_GB_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_010_M") BREAK
CASE OUTFIT_ROLE_GB_VICE_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_011_M") BREAK
CASE OUTFIT_ROLE_GB_SERGEANT_AT_ARMS iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_012_M") BREAK
CASE OUTFIT_ROLE_GB_ROAD_CAPTAIN iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_013_M") BREAK
CASE OUTFIT_ROLE_GB_PROSPECT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_014_M") BREAK
CASE OUTFIT_ROLE_GB_ENFORCER iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_017_M") BREAK
ENDSWITCH
BREAK
////////////////////////////////////
/// FEMALE
CASE HASH("DLC_MP_BIKER_F_JBIB_27_0")
CASE HASH("DLC_MP_BIKER_F_JBIB_27_1")
CASE HASH("DLC_MP_BIKER_F_JBIB_27_2")
CASE HASH("DLC_MP_BIKER_F_JBIB_27_3")
SWITCH eOutfitRole
CASE OUTFIT_ROLE_GB_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_000_F") BREAK
CASE OUTFIT_ROLE_GB_VICE_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_001_F") BREAK
CASE OUTFIT_ROLE_GB_SERGEANT_AT_ARMS iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_002_F") BREAK
CASE OUTFIT_ROLE_GB_ROAD_CAPTAIN iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_003_F") BREAK
CASE OUTFIT_ROLE_GB_PROSPECT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_004_F") BREAK
CASE OUTFIT_ROLE_GB_ENFORCER iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_015_F") BREAK
ENDSWITCH
BREAK
CASE HASH("DLC_MP_BIKER_F_JBIB_28_0")
CASE HASH("DLC_MP_BIKER_F_JBIB_28_1")
CASE HASH("DLC_MP_BIKER_F_JBIB_28_2")
SWITCH eOutfitRole
CASE OUTFIT_ROLE_GB_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_005_F") BREAK
CASE OUTFIT_ROLE_GB_VICE_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_006_F") BREAK
CASE OUTFIT_ROLE_GB_SERGEANT_AT_ARMS iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_007_F") BREAK
CASE OUTFIT_ROLE_GB_ROAD_CAPTAIN iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_008_F") BREAK
CASE OUTFIT_ROLE_GB_PROSPECT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_009_F") BREAK
CASE OUTFIT_ROLE_GB_ENFORCER iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_016_F") BREAK
ENDSWITCH
BREAK
CASE HASH("DLC_MP_BIKER_F_JBIB_29_0")
CASE HASH("DLC_MP_BIKER_F_JBIB_29_1")
CASE HASH("DLC_MP_BIKER_F_JBIB_29_2")
CASE HASH("DLC_MP_BIKER_F_JBIB_29_3")
CASE HASH("DLC_MP_BIKER_F_JBIB_29_4")
CASE HASH("DLC_MP_BIKER_F_JBIB_29_5")
SWITCH eOutfitRole
CASE OUTFIT_ROLE_GB_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_010_F") BREAK
CASE OUTFIT_ROLE_GB_VICE_PRESIDENT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_011_F") BREAK
CASE OUTFIT_ROLE_GB_SERGEANT_AT_ARMS iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_012_F") BREAK
CASE OUTFIT_ROLE_GB_ROAD_CAPTAIN iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_013_F") BREAK
CASE OUTFIT_ROLE_GB_PROSPECT iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_014_F") BREAK
CASE OUTFIT_ROLE_GB_ENFORCER iCollection = HASH("mpBiker_overlays") iPreset = HASH("MP_Biker_Rank_017_F") BREAK
ENDSWITCH
BREAK
ENDSWITCH
RETURN (iCollection != 0)
ENDFUNC
FUNC BOOL SET_PED_MP_OUTFIT(MP_OUTFITS_APPLY_DATA &sApplyOutfitData, BOOL bApplyMask = FALSE,Bool bJustMask = FALSE,bool bRemoveDamage = true, Bool bUseDefaultMask = TRUE,bool bRemoveParachute = true,Bool bTattoosOnly = false, INT iEmblemToDisplay = -1, MP_OUTFIT_ROLE eOutfitRole = OUTFIT_ROLE_NONE, BOOL bBlockHood = FALSE)
PRINTLN("SET_PED_MP_OUTFIT(bApplyMask=", bApplyMask, ", bJustMask=", bJustMask, ", bRemoveDamage=", bRemoveDamage, ", bUseDefaultMask=", bUseDefaultMask, ", bRemoveParachute=", bRemoveParachute, ", bTattoosOnly=", bTattoosOnly, ", iEmblemToDisplay=", iEmblemToDisplay, ", eOutfitRole=", eOutfitRole)
int i
REPEAT NUM_PED_COMPONENTS i
g_sOutfitsData.iComponentDrawableID[i] = -1
g_sOutfitsData.iComponentTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(g_sOutfitsData.iPropDrawableID) i
g_sOutfitsData.iPropDrawableID[i] = -1
g_sOutfitsData.iPropTextureID[i] = -1
ENDREPEAT
REPEAT COUNT_OF(g_sOutfitsData.iDLCTattooOverlay) i
g_sOutfitsData.iDLCTattooOverlay[i] = -1
ENDREPEAT
IF NOT IS_PED_DEAD_OR_DYING(sApplyOutfitData.pedID)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(sApplyOutfitData.pedID)
if ePedModel = MP_M_FREEMODE_01
or ePedModel = MP_F_FREEMODE_01
bool bSettingOutfits = false
IF sApplyOutfitData.eOutfit != OUTFIT_MP_DEFAULT
AND sApplyOutfitData.eOutfit != OUTFIT_MAX_AMOUNT
bSettingOutfits = true
endif
IF sApplyOutfitData.eMask != OUTFIT_MASK_NONE
AND sApplyOutfitData.eMask != OUTFIT_MAX_MASKS
bSettingOutfits = true
elif sApplyOutfitData.eMask = OUTFIT_MASK_NONE
and bApplyMask
and bJustMask
//Removing mask
bSettingOutfits = true
endif
if bSettingOutfits
bool bDataReturned = false
//=================== Grabbing outfit data ========================
if !bJustMask
IF GET_MP_OUTFIT_DATA(g_sOutfitsData,sApplyOutfitData, bApplyMask)
bDataReturned = true
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] GET_MP_OUTFIT_DATA returned false ")
endif
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] bJustMask skip outfit data ")
endif
//=================== Grabbing Mask data ========================
//Blocking masks for the flight / stealth pilot and hazchem suites
if bApplyMask
and sApplyOutfitData.eOutfit != OUTFIT_HEIST_STEALTH_PILOT_3
and sApplyOutfitData.eOutfit != OUTFIT_HEIST_FLIGHT_SUIT_0
IF GET_MP_HEIST_MASK_DATA(g_sOutfitsData, sApplyOutfitData, bJustMask, bUseDefaultMask)
bDataReturned = true
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]GET_MP_HEIST_MASK_DATA Mask data grabbed for: ",GET_MP_OUTFIT_MASK_NAME(sApplyOutfitData.eMask))
ELSE
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]pre - WARNING! bApplyMask = TRUE but GET_MP_HEIST_MASK_DATA = FALSE.")
ENDIF
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] No masks being grabbed either by choice or blocking outfit ")
endif
MP_OUTFIT_MASK_ENUM eDummyMask = OUTFIT_MASK_NONE
//====================== Grabbing Gear data ===========================
if sApplyOutfitData.eGear != HEIST_GEAR_NONE
IF GET_MP_HEIST_GEAR_DATA(sApplyOutfitData.pedID,g_sOutfitsData,sApplyOutfitData.eGear,eDummyMask)
bDataReturned = true
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]GET_MP_HEIST_GEAR_DATA eGear data grabbed ")
ENDIF
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] No eGear being grabbed")
endif
//=================== Grabbing Ear Gear data ========================
if sApplyOutfitData.eGearEar != HEIST_GEAR_NONE
IF GET_MP_HEIST_GEAR_DATA(sApplyOutfitData.pedID,g_sOutfitsData,sApplyOutfitData.eGearEar,eDummyMask)
bDataReturned = true
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]GET_MP_HEIST_GEAR_DATA eGearEar data grabbed ")
ENDIF
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] No eGearEar being grabbed")
endif
IF bDataReturned
switch sApplyOutfitData.eApplyStage
case AOS_PRELOAD
bool bPreloaded
bPreloaded = true
if not PRELOAD_MP_OUTFIT(sApplyOutfitData,g_sOutfitsData)
bPreloaded = false
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]0 - outfit preloading: ",enum_to_int(sApplyOutfitData.eOutfit))
endif
if bPreloaded
sApplyOutfitData.eApplyStage = AOS_SET
endif
break
case AOS_SET
if !bTattoosOnly
CLEAR_ALL_PED_PROPS(sApplyOutfitData.pedID)
CLEAR_PED_STORED_HAT_PROP(sApplyOutfitData.pedID)
REMOVE_PED_HELMET(sApplyOutfitData.pedID,TRUE)
if bRemoveDamage
CLEAR_PED_WETNESS(sApplyOutfitData.pedID)
CLEAR_PED_BLOOD_DAMAGE(sApplyOutfitData.pedID)
endif
bool bParachuteOn
INT iDrawable
INT iDLCHandHash
bParachuteOn = false
iDrawable = GET_PED_DRAWABLE_VARIATION(sApplyOutfitData.pedID, PED_COMP_HAND)
iDLCHandHash = -1
iDrawable = iDrawable
iDLCHandHash = iDLCHandHash
//====================================== PARACHUTE ==========================================
IF IS_MP_PED_WEARING_PARACHUTE(sApplyOutfitData.pedID)
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT]PARACHUTE on ")
bParachuteOn = true
ELSE
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT]PARACHUTE not on")
ENDIF
if bParachuteOn
and bRemoveParachute //Added so that parachute can be left on.
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT]removing parachute")
g_sOutfitsData.iComponentDrawableID[COMP_TYPE_HAND] = 0
IF g_sOutfitsData.iComponentTextureID[COMP_TYPE_HAND] = -1
g_sOutfitsData.iComponentTextureID[COMP_TYPE_HAND] = 0 //b*2228479
ENDIF
ENDIF
//-------------------------------------------------------------------------------------------------
//=========================== Masks clipping check =================================
IF bApplyMask
IF sApplyOutfitData.eMask != OUTFIT_MASK_NONE
and sApplyOutfitData.eMask != OUTFIT_MASK_FREEMODE
and sApplyOutfitData.eOutfit != OUTFIT_HEIST_STEALTH_PILOT_3
and sApplyOutfitData.eOutfit != OUTFIT_HEIST_FLIGHT_SUIT_0
//Make sure that the mask that get applied arent clipping other items on the head.
IF GET_STYLE_FROM_MASK(ENUM_TO_INT(sApplyOutfitdata.eMask)) = MASK_BANDANAS
// keep head and eye props.
g_sOutfitsData.iPropDrawableID[ANCHOR_EARS] = -1
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT] MASK_BANDANAS only remove eyes prop")
ELIF GET_STYLE_FROM_MASK(ENUM_TO_INT(sApplyOutfitdata.eMask)) = MASK_HELMETS
OR GET_STYLE_FROM_MASK(ENUM_TO_INT(sApplyOutfitdata.eMask)) = MASK_ISLAND_HEIST_NIGHT_VISION
OR GET_STYLE_FROM_MASK(ENUM_TO_INT(sApplyOutfitdata.eMask)) = MASK_ISLAND_HEIST_NECK_GAITERS
OR sApplyOutfitData.eMask = MASK_ISLAND_HEIST_FACE_WRAPS_0
OR sApplyOutfitData.eMask = MASK_ISLAND_HEIST_FACE_WRAPS_1
// All props (minus head) to -1
g_sOutfitsData.iPropDrawableID[ANCHOR_EYES] = -1
g_sOutfitsData.iPropDrawableID[ANCHOR_EARS] = -1
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT] MASK_HELMETS remove eyes and ears prop")
ELSE
// Remove all head / ear / eye props
g_sOutfitsData.iPropDrawableID[ANCHOR_EYES] = -1
g_sOutfitsData.iPropDrawableID[ANCHOR_EARS] = -1
g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = -1
if IS_PED_IN_ANY_VEHICLE(sApplyOutfitData.pedID)
CLEAR_PED_STORED_HAT_PROP(sApplyOutfitData.pedID)
endif
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT] Remove all head / ear / eye props mask is being applied")
endif
// Remove earings
IF (GET_ENTITY_MODEL(sApplyOutfitdata.pedID) = MP_F_FREEMODE_01)
IF IS_ITEM_EARRINGS(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_VARIATIONS(sApplyOutfitData.pedID, g_sOutfitsData.iComponentDrawableID[COMP_TYPE_TEETH], g_sOutfitsData.iComponentTextureID[COMP_TYPE_TEETH], COMP_TYPE_TEETH))
g_sOutfitsData.iComponentDrawableID[COMP_TYPE_TEETH] = 0
g_sOutfitsData.iComponentTextureID[COMP_TYPE_TEETH] = 0
ENDIF
ENDIF
// when the player is using a freemode mask we should remove all the props
ELIF sApplyOutfitData.eMask = OUTFIT_MASK_FREEMODE
// Remove all head / ear / eye props
// Skip forced props.
INT iDLCNameHash
iDLCNameHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(sApplyOutfitdata.pedID), ENUM_TO_INT(PED_COMP_BERD), g_sOutfitsData.iComponentDrawableID[COMP_TYPE_BERD], g_sOutfitsData.iComponentTextureID[COMP_TYPE_BERD])
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_FORCE_PROP, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND GET_PED_DRAWABLE_VARIATION(sApplyOutfitData.pedID, PED_COMP_BERD) = g_sOutfitsData.iComponentDrawableID[COMP_TYPE_BERD]
// Skip
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT] Already wearing banadana so keep props.")
ELSE
g_sOutfitsData.iPropDrawableID[ANCHOR_EYES] = -1
g_sOutfitsData.iPropDrawableID[ANCHOR_EARS] = -1
g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = -1
// Remove earings
IF (GET_ENTITY_MODEL(sApplyOutfitdata.pedID) = MP_F_FREEMODE_01)
IF IS_ITEM_EARRINGS(ePedModel, COMP_TYPE_TEETH, GET_PED_COMP_ITEM_FROM_VARIATIONS(sApplyOutfitData.pedID, g_sOutfitsData.iComponentDrawableID[COMP_TYPE_TEETH], g_sOutfitsData.iComponentTextureID[COMP_TYPE_TEETH], COMP_TYPE_TEETH))
g_sOutfitsData.iComponentDrawableID[COMP_TYPE_TEETH] = 0
g_sOutfitsData.iComponentTextureID[COMP_TYPE_TEETH] = 0
ENDIF
ENDIF
if IS_PED_IN_ANY_VEHICLE(sApplyOutfitData.pedID)
CLEAR_PED_STORED_HAT_PROP(sApplyOutfitData.pedID)
endif
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT] FREEMODE mask always Remove all props and earings")
ENDIF
// when attempting to remove just a mask remove all head props incase of left overs from previous set mask.
ELIF sApplyOutfitData.eMask = OUTFIT_MASK_NONE
and bJustMask
// Remove all head / ear / eye props
g_sOutfitsData.iPropDrawableID[ANCHOR_EYES] = -1
g_sOutfitsData.iPropDrawableID[ANCHOR_EARS] = -1
g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD] = -1
if IS_PED_IN_ANY_VEHICLE(sApplyOutfitData.pedID)
CLEAR_PED_STORED_HAT_PROP(sApplyOutfitData.pedID)
endif
ENDIF
ENDIF
//-------------------------------------------------------------------------------------------------
//====================================== HEAD BLEND ===========================================
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT]HEAD BLEND start")
SET_HEAD_BLEND_UPDATE(sApplyOutfitData.pedID,g_sOutfitsData,sApplyOutfitData.iPlayerIndex)
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT]HEAD BLEND finished")
//-------------------------------------------------------------------------------------------------
//====================================== FACE PAINT ==========================================
//removing face paint on heists
IF GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].sClientCoronaData.iTeamChosen != -1
AND GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].sClientCoronaData.iTeamChosen < FMMC_MAX_TEAMS
AND NATIVE_TO_INT(PLAYER_ID()) != -1
IF IS_BIT_SET(g_FMMC_STRUCT.sFMMCEndConditions[GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].sClientCoronaData.iTeamChosen].iTeamBitset, ciBS_TEAM_HIDE_FACEPAINT)
IF (GlobalplayerBD[NATIVE_TO_INT(PLAYER_ID())].sMissionExtraMP.satmpSpecialActivityType = SATMP_HEIST_PLANNING)
or (GlobalplayerBD[NATIVE_TO_INT(PLAYER_ID())].sMissionExtraMP.satmpSpecialActivityType = SATMP_HEIST)
SET_PED_HEAD_OVERLAY(sApplyOutfitData.pedID, HOS_MAKEUP, 0, 0.0) //4= facial blend makeup/facepaint
endif
endif
endif
//-------------------------------------------------------------------------------------------------
//======================================= SET VARIATIONS ===========================================
OVERRIDE_PED_CREW_LOGO_TEXTURE(sApplyOutfitData.pedID, "", "")
PED_COMP_NAME_ENUM eDeclComp
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - iEmblemToDisplay = ", iEmblemToDisplay)
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - eOutfitRole = ", eOutfitRole)
BOOL bSetBerd
bSetBerd = FALSE
REPEAT NUM_PED_COMPONENTS i
IF g_sOutfitsData.iComponentDrawableID[i] != -1
IF i = ENUM_TO_INT(PED_COMP_DECL)
AND iEmblemToDisplay != -1
eDeclComp = GET_PED_COMP_ITEM_FROM_VARIATIONS(sApplyOutfitData.pedID, g_sOutfitsData.iComponentDrawableID[i], g_sOutfitsData.iComponentTextureID[i], COMP_TYPE_DECL)
IF IS_ITEM_A_CREW_LOGO(ePedModel, COMP_TYPE_DECL, eDeclComp)
IF iEmblemToDisplay = 0
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,i)), " [CREW_LOGO=NONE]")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), 0, 0)
ELIF iEmblemToDisplay = 1
IF sApplyOutfitData.pedID = PLAYER_PED_ID()
AND NOT IS_LOCAL_PLAYER_IN_ACTIVE_CLAN()
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,i)), " [CREW_LOGO=NONE] *fallback 1*")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), 0, 0)
ELSE
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,i)), " [CREW_LOGO=CREW]")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), g_sOutfitsData.iComponentDrawableID[i], g_sOutfitsData.iComponentTextureID[i])
SET_PED_ENABLE_CREW_EMBLEM(sApplyOutfitData.pedID, TRUE)
ENDIF
ELIF iEmblemToDisplay = 2
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,i)), " [CREW_LOGO=PRESET]")
REQUEST_STREAMED_TEXTURE_DICT(GET_CUSTOM_CREW_LOGO_TXD_NAME_FOR_PLAYER(PLAYER_ID()))
OVERRIDE_PED_CREW_LOGO_TEXTURE(sApplyOutfitData.pedID, GET_CUSTOM_CREW_LOGO_TXD_NAME_FOR_PLAYER(PLAYER_ID()), GET_CUSTOM_CREW_LOGO_TXD_TEXTURE_FOR_PLAYER(PLAYER_ID(), CUSTOM_CREW_LOGO_PRESET))
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), g_sOutfitsData.iComponentDrawableID[i], g_sOutfitsData.iComponentTextureID[i])
ELSE
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,i)), " [CREW_LOGO=NONE] *fallback 2*")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), 0, 0)
ENDIF
ELSE
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,i)), " [not crew logo]")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), g_sOutfitsData.iComponentDrawableID[i], g_sOutfitsData.iComponentTextureID[i])
ENDIF
ELSE
IF i = ENUM_TO_INT(PED_COMP_BERD)
//wait to call after hair
ELIF i = ENUM_TO_INT(PED_COMP_HAIR)
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,i)), " [", g_sOutfitsData.iComponentDrawableID[i], ", ", g_sOutfitsData.iComponentTextureID[i] ,"]")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), g_sOutfitsData.iComponentDrawableID[i], g_sOutfitsData.iComponentTextureID[i])
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,PED_COMP_BERD)), " [", g_sOutfitsData.iComponentDrawableID[PED_COMP_BERD], ", ", g_sOutfitsData.iComponentTextureID[PED_COMP_BERD] ,"]")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, PED_COMP_BERD), g_sOutfitsData.iComponentDrawableID[PED_COMP_BERD], g_sOutfitsData.iComponentTextureID[PED_COMP_BERD])
bSetBerd = TRUE
ELSE
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,i)), " [", g_sOutfitsData.iComponentDrawableID[i], ", ", g_sOutfitsData.iComponentTextureID[i] ,"]")
IF (g_sOutfitsData.iComponentDrawableID[i] >= GET_NUMBER_OF_PED_DRAWABLE_VARIATIONS(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i)))
OR (g_sOutfitsData.iComponentTextureID[i] >= GET_NUMBER_OF_PED_TEXTURE_VARIATIONS(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), g_sOutfitsData.iComponentDrawableID[i]))
// Invalid item
SCRIPT_ASSERT("[SET_PED_MP_OUTFIT] - invalid drawable or texture variation defined, see output in log.")
ELSE
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, i), g_sOutfitsData.iComponentDrawableID[i], g_sOutfitsData.iComponentTextureID[i])
ENDIF
ENDIF
IF i = ENUM_TO_INT(PED_COMP_DECL)
eDeclComp = GET_PED_COMP_ITEM_FROM_VARIATIONS(sApplyOutfitData.pedID, g_sOutfitsData.iComponentDrawableID[i], g_sOutfitsData.iComponentTextureID[i], COMP_TYPE_DECL)
IF IS_ITEM_A_CREW_LOGO(ePedModel, COMP_TYPE_DECL, eDeclComp)
SET_PED_ENABLE_CREW_EMBLEM(sApplyOutfitData.pedID, TRUE)
ENDIF
ENDIF
ENDIF
ENDIF
ENDREPEAT
IF NOT bSetBerd
AND g_sOutfitsData.iComponentDrawableID[PED_COMP_BERD] != -1
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET VARIATIONS - ", GET_COMP_VARIATION_TYPE_STRING(INT_TO_ENUM(PED_COMPONENT,PED_COMP_BERD)), " [", g_sOutfitsData.iComponentDrawableID[PED_COMP_BERD], ", ", g_sOutfitsData.iComponentTextureID[PED_COMP_BERD] ,"]")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, INT_TO_ENUM(PED_COMPONENT, PED_COMP_BERD), g_sOutfitsData.iComponentDrawableID[PED_COMP_BERD], g_sOutfitsData.iComponentTextureID[PED_COMP_BERD])
ENDIF
REPEAT COUNT_OF(g_sOutfitsData.iPropDrawableID) i
IF g_sOutfitsData.iPropDrawableID[i] != -1
AND g_sOutfitsData.iPropDrawableID[i] != 255
SAFE_SET_PROP(sApplyOutfitData.pedID, INT_TO_ENUM(PED_PROP_POSITION, i), g_sOutfitsData.iPropDrawableID[i], g_sOutfitsData.iPropTextureID[i])
ENDIF
ENDREPEAT
//-------------------------------------------------------------------------------------------------
//====================================== SCUBA ==========================================
IF sApplyOutfitData.pedID = PLAYER_PED_ID()
IF DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(sApplyOutfitData.pedID, PED_COMP_SPECIAL, DLC_RESTRICTION_TAG_SCUBA_GEAR)
IF ePedModel = MP_M_FREEMODE_01
SET_PLAYER_PREVIOUS_VARIATION_DATA(PLAYER_ID(), PED_COMP_SPECIAL, 15, 0, 0, 0)
ELIF ePedModel = MP_F_FREEMODE_01
SET_PLAYER_PREVIOUS_VARIATION_DATA(PLAYER_ID(), PED_COMP_SPECIAL, 3, 0, 0, 0)
ENDIF
ENDIF
ENDIF
//-------------------------------------------------------------------------------------------------
//====================================== PARACHUTE ==========================================
IF bParachuteOn
AND NOT bRemoveParachute
AND sApplyOutfitData.pedID = PLAYER_PED_ID()
CPRINTLN(DEBUG_MISSION, "[SET_PED_MP_OUTFIT]keeping parachute")
EQUIP_STORED_MP_PARACHUTE(PLAYER_ID())
ENDIF
//-------------------------------------------------------------------------------------------------
//========================================= HELMET ===========================================
//set the helmets the peds use
IF NOT IS_PED_WEARING_A_HELMET(sApplyOutfitData.pedID)
IF (sApplyOutfitData.eMask >= OUTFIT_MASK_HELMETS_0 and sApplyOutfitData.eMask <= OUTFIT_MASK_HELMETS_7)
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]HELMET eMask[", sApplyOutfitData.eMask, "] is between helmet enums")
SET_PED_HELMET_PROP_INDEX(sApplyOutfitData.pedID, g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD])
SET_PED_HELMET_TEXTURE_INDEX(sApplyOutfitData.pedID, g_sOutfitsData.iPropTextureID[ANCHOR_HEAD])
STORE_HELMET_VISOR_PROP_INDICES(sApplyOutfitData.pedID, g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD], g_sOutfitsData.iPropTextureID[ANCHOR_HEAD])
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]HELMET eMask[", sApplyOutfitData.eMask, "] is out of range, use stat if possible")
PED_COMP_ITEM_DATA_STRUCT sItemDetails
sItemDetails = GET_PED_COMP_DATA_FOR_ITEM_MP(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_HELMET_CURRENT_COLOR)))
IF sItemDetails.iDrawable != -1
AND sItemDetails.iTexture != -1
IF IS_ITEM_A_HELMET(ePedModel, COMP_TYPE_PROPS, INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_HELMET_CURRENT_COLOR)))
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]HELMET set helmet prop[", sItemDetails.iDrawable, "] and texture[", sItemDetails.iTexture, "] indexes, MP_STAT_HELMET_CURRENT_COLOR:", GET_MP_INT_CHARACTER_STAT(MP_STAT_HELMET_CURRENT_COLOR), " \"", sItemDetails.sLabel, "\"")
SET_PED_HELMET_PROP_INDEX(sApplyOutfitData.pedID, sItemDetails.iDrawable)
SET_PED_HELMET_TEXTURE_INDEX(sApplyOutfitData.pedID, sItemDetails.iTexture)
STORE_HELMET_VISOR_PROP_INDICES(sApplyOutfitData.pedID, sItemDetails.iDrawable, sItemDetails.iTexture)
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]HELMET can't set helmet prop[", sItemDetails.iDrawable, "] and texture[", sItemDetails.iTexture, "] indexes, MP_STAT_HELMET_CURRENT_COLOR:", GET_MP_INT_CHARACTER_STAT(MP_STAT_HELMET_CURRENT_COLOR), " \"", sItemDetails.sLabel, "\" is not a helmet!!")
ENDIF
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]HELMET don't set helmet prop and texture indexes, MP_STAT_HELMET_CURRENT_COLOR:", GET_MP_INT_CHARACTER_STAT(MP_STAT_HELMET_CURRENT_COLOR))
ENDIF
// Explicitly set an outfit without a helmet so make sure we clear the flags.
SET_PED_CONFIG_FLAG(sApplyOutfitData.pedID, PCF_HasHelmet, FALSE)
SET_PED_CONFIG_FLAG(sApplyOutfitData.pedID, PCF_DontTakeOffHelmet, FALSE)
ENDIF
ELSE
IF g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD] != -1
AND g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD] != 255
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]HELMET ped wearing helmet [", g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD], ", ", g_sOutfitsData.iPropTextureID[ANCHOR_HEAD], "]")
STORE_HELMET_VISOR_PROP_INDICES(sApplyOutfitData.pedID, g_sOutfitsData.iPropDrawableID[ANCHOR_HEAD], g_sOutfitsData.iPropTextureID[ANCHOR_HEAD], FALSE)
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT]HELMET ped wearing helmet (invalid ")
ENDIF
ENDIF
//-------------------------------------------------------------------------------------------------
//=================================== GEAR =======================================
if not IS_FAKE_MULTIPLAYER_MODE_SET()
//set any gear
if sApplyOutfitData.eGear != HEIST_GEAR_NONE
//Also set any gear if in a heist
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]1 - heist gear setting: ",enum_to_int(sApplyOutfitData.eGear),": ",GET_MP_HEIST_GEAR_NAME(sApplyOutfitData.eGear))
SET_MP_HEIST_GEAR(sApplyOutfitData.pedID,sApplyOutfitData.eGear,sApplyOutfitData.iPlayerIndex)
endif
if sApplyOutfitData.eGearEar != HEIST_GEAR_NONE
and sApplyOutfitData.eOutfit != OUTFIT_HEIST_STEALTH_PILOT_3
and sApplyOutfitData.eOutfit != OUTFIT_HEIST_FLIGHT_SUIT_0
//blocking ear piece for the fLight / stealth pilot
//Also set any ear pieces if in a heist
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]1 - heist Gear Ear setting: ",enum_to_int(sApplyOutfitData.eGearEar),": ",GET_MP_HEIST_GEAR_NAME(sApplyOutfitData.eGearEar))
SET_MP_HEIST_GEAR(sApplyOutfitData.pedID,sApplyOutfitData.eGearEar,sApplyOutfitData.iPlayerIndex)
endif
//-------------------------------------------------------------------------------------------------
//===================================== SPECIAL VARIATIONS ======================================
// If we are setting the players outfit as recomended force auto helmets on in heli's
if sApplyOutfitData.pedID = player_ped_id()
and sApplyOutfitData.eOutfit != OUTFIT_MP_FREEMODE
and sApplyOutfitData.eOutfit != OUTFIT_MP_DEFAULT
SET_MP_INT_CHARACTER_STAT(MP_STAT_AUTO_EQ_HELMET_FLY_VEH, 1)
endif
// If we are wearing the pilot suit or haz-suit check hiding the mask
IF IS_PED_WEARING_PILOT_SUIT(sApplyOutfitData.pedID, PED_COMP_TEETH)
AND sApplyOutfitData.eOutfit != OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_PURPLE_0 // ignore these, we always want the mask for them.
AND sApplyOutfitData.eOutfit != OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_ORANGE_0
AND sApplyOutfitData.eOutfit != OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_PINK_0
AND sApplyOutfitData.eOutfit != OUTFIT_VERSUS_HIDDEN_SM_AIR_SHOOTOUT_GREEN_0
AND sApplyOutfitData.eOutfit != OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_0
AND sApplyOutfitData.eOutfit != OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_1
AND sApplyOutfitData.eOutfit != OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_2
AND sApplyOutfitData.eOutfit != OUTFIT_VERSUS_HIDDEN_SM_BOMBUSHKA_RUN_WHITE_3
AND sApplyOutfitData.eOutfit != OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_0
AND sApplyOutfitData.eOutfit != OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_1
AND sApplyOutfitData.eOutfit != OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_2
AND sApplyOutfitData.eOutfit != OUTFIT_GANGOPS_HEIST_FIGHTER_PILOT_3
AND sApplyOutfitData.eOutfit != OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_0
AND sApplyOutfitData.eOutfit != OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_1
AND sApplyOutfitData.eOutfit != OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_2
AND sApplyOutfitData.eOutfit != OUTFIT_GANGOPS_HEIST_CASUAL_PILOT_3
IF NOT bApplyMask
or sApplyOutfitData.eMask = OUTFIT_MASK_NONE
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] Ped wearing flight suit. Set head and teeth components to 0, 0")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, PED_COMP_TEETH, 0, 0)
CLEAR_PED_PROP(sApplyOutfitData.pedID, ANCHOR_HEAD)
ENDIF
ELIF IS_PED_WEARING_HAZ_MASK(sApplyOutfitData.pedID)
int HoodID
int HoodTxtID
HoodID = GET_CHEMSUIT_HOOD_VARIATION(sApplyOutfitData.pedID)
HoodTxtID = GET_PED_TEXTURE_VARIATION(sApplyOutfitData.pedID, PED_COMP_SPECIAL)
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, PED_COMP_SPECIAL,HoodID, HoodTxtID)
CLEAR_PED_PROP(sApplyOutfitData.pedID, ANCHOR_HEAD)
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] Ped wearing haz suit. Set special component to hood up")
ELIF not IS_PED_WEARING_HAZ_MASK(sApplyOutfitData.pedID)
and IS_PED_WEARING_HAZ_HOOD_UP(sApplyOutfitData.pedID)
int HoodID
int HoodTxtID
HoodID = GET_CHEMSUIT_HOOD_VARIATION(sApplyOutfitData.pedID,false)
HoodTxtID = GET_PED_TEXTURE_VARIATION(sApplyOutfitData.pedID, PED_COMP_SPECIAL)
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, PED_COMP_SPECIAL,HoodID, HoodTxtID)
CLEAR_PED_PROP(sApplyOutfitData.pedID, ANCHOR_HEAD)
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] Ped wearing haz suit but no chem mask. Set special component to hood down")
ENDIF
IF !bBlockHood
UPDATE_PED_HOOD_STATE(sApplyOutfitData.pedID)
ENDIF
//-------------------------------------------------------------------------------------------------
//=================================== NIGHTVISION CHECK =======================================
if sApplyOutfitData.eGear != HEIST_GEAR_NIGHTVISION
and sApplyOutfitData.eOutfit = OUTFIT_MP_FREEMODE
scrShopPedComponent componentItem
IF (ePedModel = MP_M_FREEMODE_01)
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_M_HAIR_0_0), componentItem)
ELIF (ePedModel = MP_F_FREEMODE_01)
GET_SHOP_PED_COMPONENT(ENUM_TO_INT(DLC_MP_HEIST_F_HAIR_0_0), componentItem)
Endif
if g_sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = componentItem.m_drawableIndex
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] Ped wearing Night vision from freemode remove and set g_sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = -1")
g_sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = -1
endif
endif
//-------------------------------------------------------------------------------------------------
//=================================== MC STYLE HEADGEAR =======================================
if GB_OUTFITS_IS_THIS_OUTFIT_A_BIKER_OUTFIT(sApplyOutfitData.eOutfit)
IF GlobalplayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].sMagnateGangBossData.sGangOutfitData.bShowHeadwear = FALSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT] wearing biker outfit ", GET_MP_OUTFIT_NAME_FROM_ENUM(sApplyOutfitData.eOutfit), ", bShowHeadwear = FALSE")
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, PED_COMP_HEAD, 0, 0)
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, PED_COMP_BERD, 0, 0)
SAFE_SET_PROP(sApplyOutfitData.pedID, ANCHOR_HEAD, -1, 0)
SAFE_SET_PROP(sApplyOutfitData.pedID, ANCHOR_EYES, -1, 0)
SAFE_SET_PROP(sApplyOutfitData.pedID, ANCHOR_EARS, -1, 0)
SET_PED_COMP_ITEM_CURRENT_MP(sApplyOutfitData.pedID, COMP_TYPE_PROPS, PROPS_HEAD_NONE)
PRINTLN("[RCC ST_GANGBOSS] [GANG_OUTFITS] - GB_OUTFITS_SET_OUTFIT_HEADWEAR disable PCF_DisableAutoEquipHelmetsInBikes")
SET_PED_CONFIG_FLAG(sApplyOutfitData.pedID, PCF_DisableAutoEquipHelmetsInBikes, TRUE)
PRINTLN("[ST_GANGBOSS] [GANG_OUTFITS] - GB_OUTFITS_SET_OUTFIT_HEADWEAR - FALSE - Outfit re-applied with headwear set OFF")
DEBUG_PRINTCALLSTACK()
ELSE
CPRINTLN(DEBUG_PED_COMP, "[SET_PED_MP_OUTFIT] wearing biker outfit ", GET_MP_OUTFIT_NAME_FROM_ENUM(sApplyOutfitData.eOutfit), ", bShowHeadwear = TRUE")
ENDIF
endif
//-------------------------------------------------------------------------------------------------
//=================================== HAIR =======================================
INT iHairTint
INT iSecHairTint
BOOL bSkipHairOverlays
IF g_sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = -1
// if not local player use broadcast data otherwise use stats
IF sApplyOutfitData.iPlayerIndex != -1
AND INT_TO_PLAYERINDEX(sApplyOutfitData.iPlayerIndex) != player_ID() //equal to player
AND NOT (sApplyOutfitData.pedID = PLAYER_PED_ID()) //b*2229585
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][AMEC] - iPlayerIndex != -1, setting hair style to broadcast data for player: ", sApplyOutfitData.iPlayerIndex, ", with heist: ", GlobalplayerBD[sApplyOutfitData.iPlayerIndex].iMyCurrentHair)
// Ensures hair tints are applied to local player B* 2176880
// IF PLAYER_PED_ID() = GET_PLAYER_PED(GET_PLAYER_IN_CORONA_SLOT(sApplyOutfitData.iPlayerIndex))
//Using broadcast data for tints now. B* 2099505
iHairTint = GlobalplayerBD[sApplyOutfitData.iPlayerIndex].iHairTintPrime
iSecHairTint = GlobalplayerBD[sApplyOutfitData.iPlayerIndex].iHairTintSecondary
bSkipHairOverlays = TRUE // We can't mess with local players save data so need to block the update. This will get picked up in the tattoo update anyway. B* 2694661
SET_PED_COMP_ITEM_CURRENT_MP(sApplyOutfitData.pedID, COMP_TYPE_HAIR, INT_TO_ENUM(PED_COMP_NAME_ENUM, GlobalplayerBD[sApplyOutfitData.iPlayerIndex].iMyCurrentHair), FALSE, DEFAULT, DEFAULT, DEFAULT, bSkipHairOverlays, iHairTint, iSecHairTint, sApplyOutfitData.iPlayerIndex, TRUE)
// ENDIF
ELSE
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][AMEC] - iPlayerIndex = -1, setting hair style to local stat data.")
iHairTint = GET_MP_INT_CHARACTER_STAT(MP_STAT_HAIR_TINT)
iSecHairTint = GET_MP_INT_CHARACTER_STAT(MP_STAT_SEC_HAIR_TINT)
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_USING_HAIR_SA_STAT)
PED_COMP_NAME_ENUM eSAHairItem
eSAHairItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO_SA))
IF (eSAHairItem != DUMMY_PED_COMP)
PED_COMP_NAME_ENUM eGRHairItem
eGRHairItem = DUMMY_PED_COMP
IF (GET_ENTITY_MODEL(sApplyOutfitData.pedID) = MP_M_FREEMODE_01)
eGRHairItem = GET_MALE_HAIR(eSAHairItem)
ELIF (GET_ENTITY_MODEL(sApplyOutfitData.pedID) = MP_F_FREEMODE_01)
eGRHairItem = GET_FEMALE_HAIR(eSAHairItem)
ENDIF
IF (eGRHairItem != DUMMY_PED_COMP)
AND (eSAHairItem != eGRHairItem)
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][HAIR] gr_hair: replacing hair enum ", eSAHairItem, " with gunrunning hair enum ", eGRHairItem)
eSAHairItem = eGRHairItem
ENDIF
ENDIF
IF IS_PC_VERSION()
IF (ePedModel = MP_M_FREEMODE_01)
eSAHairItem = GET_MALE_HAIR(eSAHairItem)
ELIF (ePedModel = MP_F_FREEMODE_01)
eSAHairItem = GET_FEMALE_HAIR(eSAHairItem)
IF eSAHairItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BIKER_F_HAIR_6_0"), COMP_TYPE_HAIR, 4)
OR eSAHairItem = GET_FEMALE_HAIR(GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BIKER_F_HAIR_6_0"), COMP_TYPE_HAIR, 4))
eSAHairItem = GET_FEMALE_HAIR(GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BIKER_F_HAIR_5_0"), COMP_TYPE_HAIR, 4))
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][HAIR] swap female hair DLC_MP_BIKER_F_HAIR_6_0 for DLC_MP_BIKER_F_HAIR_5_0")
ELIF eSAHairItem = GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BIKER_F_HAIR_5_0"), COMP_TYPE_HAIR, 4)
OR eSAHairItem = GET_FEMALE_HAIR(GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BIKER_F_HAIR_5_0"), COMP_TYPE_HAIR, 4))
eSAHairItem = GET_FEMALE_HAIR(GET_PED_COMP_ITEM_FROM_NAME_HASH(ePedModel, HASH("DLC_MP_BIKER_F_HAIR_6_0"), COMP_TYPE_HAIR, 4))
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][HAIR] swap female hair DLC_MP_BIKER_F_HAIR_5_0 for DLC_MP_BIKER_F_HAIR_6_0")
ENDIF
ENDIF
ENDIF
SET_PED_COMP_ITEM_CURRENT_MP(sApplyOutfitData.pedID, COMP_TYPE_HAIR, eSAHairItem,
FALSE, DEFAULT, DEFAULT, DEFAULT, DEFAULT, iHairTint, iSecHairTint, DEFAULT, DEFAULT)
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][HAIR] MP_STAT_USING_HAIR_SA_STAT true, eSAHairItem:", eSAHairItem)
ELSE
PED_COMP_NAME_ENUM eHairItem
eHairItem = INT_TO_ENUM(PED_COMP_NAME_ENUM, GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_STORED_HAIRDO))
SET_PED_COMP_ITEM_CURRENT_MP(sApplyOutfitData.pedID, COMP_TYPE_HAIR, eHairItem,
FALSE, DEFAULT, DEFAULT, DEFAULT, DEFAULT, iHairTint, iSecHairTint, DEFAULT, DEFAULT)
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][HAIR] MP_STAT_USING_HAIR_SA_STAT false, eHairItem:", eHairItem)
ENDIF
ENDIF
// Re-apply berd to fix hair.
SET_PED_COMPONENT_VARIATION(sApplyOutfitData.pedID, PED_COMP_BERD, GET_PED_DRAWABLE_VARIATION(sApplyOutfitData.pedID, PED_COMP_BERD), GET_PED_TEXTURE_VARIATION(sApplyOutfitData.pedID, PED_COMP_BERD))
ELSE
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][HAIR] g_sOutfitsData.iComponentDrawableID[PED_COMP_HAIR] = ", g_sOutfitsData.iComponentDrawableID[PED_COMP_HAIR])
ENDIF
endif
//-------------------------------------------------------------------------------------------------
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] bTattoosOnly = True skip all outfit and masks application ")
endif //bTattoosOnly check
//====================================== TATTOOS ==========================================
if not IS_FAKE_MULTIPLAYER_MODE_SET()
//previously skipping tattoo updates if the mask was just being applied but this caused other issues after hair was updated.
Bool bBlockTShirtTats
INT iTShirtDecalHashOverride
iTShirtDecalHashOverride = -1
if sApplyOutfitData.eOutfit = OUTFIT_MP_FREEMODE
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]bBlockTShirtTats False outfit is freemode")
bBlockTShirtTats = FALSE
else
bBlockTShirtTats = TRUE
// Contain overlay fix to this single outfit for now.
IF sApplyOutfitData.eOutfit = OUTFIT_ISLAND_HEIST_BEACH_PARTY_0
iTShirtDecalHashOverride = g_sOutfitsData.iDLCTattooOverlay[0]
ENDIF
endif
IF sApplyOutfitData.iPlayerIndex != -1
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][AMEC] - iPlayerIndex != -1. Call SET_MP_TATTOOS_FROM_DATA() for player ped, ", sApplyOutfitData.iPlayerIndex)
SET_MP_TATTOOS_FROM_DATA(sApplyOutfitData.pedID, GlobalplayerBD_Tattoos[sApplyOutfitData.iPlayerIndex].iPlayerTattooData,bBlockTShirtTats,iTShirtDecalHashOverride)
ELSE
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT][AMEC] - iPlayerIndex = -1. Call UPDATE_TATOOS_MP(", GET_STRING_FROM_BOOL(bBlockTShirtTats), ") for ped")
UPDATE_TATOOS_MP(sApplyOutfitData.pedID,bBlockTShirtTats,DEFAULT,iTShirtDecalHashOverride)
ENDIF
// Equip DLC tattoo for outfit.
#IF USE_TU_CHANGES
// NOTE: If we are applying just a mask (bJustMask) the overlays will get reset.
// If an outfit is using overlay hashes we will need to find a solution for grabbing the data.
// This will be problematic if we have 2 outfits that share the same jbib but require different overlays.
// We had this with the bugstar outfit but new DECL component assets were provided so we could remove the overlays.
IF eOutfitRole != OUTFIT_ROLE_NONE
INT iRoleCollection, iRolePreset
INT iDLCJbibHash
iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(sApplyOutfitData.pedID), ENUM_TO_INT(PED_COMP_JBIB), GET_PED_DRAWABLE_VARIATION(sApplyOutfitData.pedID, PED_COMP_JBIB), GET_PED_TEXTURE_VARIATION(sApplyOutfitData.pedID, PED_COMP_JBIB))
IF GET_TATTOO_PRESET_FOR_MP_OUTFIT_ROLE(iDLCJbibHash, eOutfitRole, iRoleCollection, iRolePreset)
g_sOutfitsData.iDLCTattooOverlay[0] = iRolePreset
ENDIF
ENDIF
INT iOutfitTat
BOOL bApplyDLCTattoo
REPEAT COUNT_OF(g_sOutfitsData.iDLCTattooOverlay) iOutfitTat
IF g_sOutfitsData.iDLCTattooOverlay[iOutfitTat] != -1
bApplyDLCTattoo = TRUE
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - bApplyDLCTattoo = TRUE g_sOutfitsData.iDLCTattooOverlay[i]:", g_sOutfitsData.iDLCTattooOverlay[iOutfitTat])
ENDIF
ENDREPEAT
IF bApplyDLCTattoo
INT iDiskIndex
INT iDLCIndex
INT iDLCCount
BOOL bSkip
sTattooShopItemValues sDLCTattooData
TATTOO_DATA_STRUCT sTattooData
TATTOO_FACTION_ENUM eFaction
eFaction = GET_TATTOO_FACTION_FOR_PED(sApplyOutfitData.pedID)
iDLCCount = GET_NUM_TATTOO_SHOP_DLC_ITEMS(eFaction)
// Apply outfit tattoos - disk
REPEAT MAX_NUMBER_OF_TATTOOS iDiskIndex
IF GET_TATTOO_DATA(sTattooData, INT_TO_ENUM(TATTOO_NAME_ENUM, iDiskIndex), eFaction, sApplyOutfitData.pedID)
REPEAT COUNT_OF(g_sOutfitsData.iDLCTattooOverlay) iOutfitTat
IF g_sOutfitsData.iDLCTattooOverlay[iOutfitTat] = sTattooData.iPreset
AND g_sOutfitsData.iDLCTattooOverlay[iOutfitTat] != -1
bSkip = FALSE
IF sTattooData.iUpgradeGroup = HASH("crewLogo")
IF iEmblemToDisplay = 0
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET TATTOOS - ", iOutfitTat, " [CREW_LOGO=NONE]")
bSkip = TRUE
ELIF iEmblemToDisplay = 1
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET TATTOOS - ", iOutfitTat, " [CREW_LOGO=CREW]")
ELIF iEmblemToDisplay = 2
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET TATTOOS - ", iOutfitTat, " [CREW_LOGO=PRESET]")
REQUEST_STREAMED_TEXTURE_DICT(GET_CUSTOM_CREW_LOGO_TXD_NAME_FOR_PLAYER(PLAYER_ID()))
OVERRIDE_PED_CREW_LOGO_TEXTURE(sApplyOutfitData.pedID, GET_CUSTOM_CREW_LOGO_TXD_NAME_FOR_PLAYER(PLAYER_ID()), GET_CUSTOM_CREW_LOGO_TXD_TEXTURE_FOR_PLAYER(PLAYER_ID(), CUSTOM_CREW_LOGO_PRESET))
ENDIF
ENDIF
IF NOT bSkip
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - adding overlay ", sDLCTattooData.Preset, " ", sDLCTattooData.Label)
ADD_PED_DECORATION_FROM_HASHES(sApplyOutfitData.pedID, sTattooData.iCollection, sTattooData.iPreset)
ADD_SECONDARY_PED_DECORATION_FROM_HASHES(sApplyOutfitData.pedID, sTattooData.iCollection, sTattooData.iPreset)
ENDIF
ENDIF
ENDREPEAT
ENDIF
ENDREPEAT
// Apply outfit tattoos - dlc
REPEAT iDLCCount iDLCIndex
IF GET_TATTOO_SHOP_DLC_ITEM_DATA(eFaction, iDLCIndex, sDLCTattooData)
REPEAT COUNT_OF(g_sOutfitsData.iDLCTattooOverlay) iOutfitTat
IF g_sOutfitsData.iDLCTattooOverlay[iOutfitTat] = sDLCTattooData.Preset
AND g_sOutfitsData.iDLCTattooOverlay[iOutfitTat] != -1
bSkip = FALSE
IF sDLCTattooData.UpdateGroup = HASH("crewLogo")
IF iEmblemToDisplay = 0
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET TATTOOS - ", iOutfitTat, " [CREW_LOGO=NONE]")
bSkip = TRUE
ELIF iEmblemToDisplay = 1
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET TATTOOS - ", iOutfitTat, " [CREW_LOGO=CREW]")
ELIF iEmblemToDisplay = 2
PRINTLN("[RBJ] - ped_component_public - SET_PED_MP_OUTFIT - SET TATTOOS - ", iOutfitTat, " [CREW_LOGO=PRESET]")
REQUEST_STREAMED_TEXTURE_DICT(GET_CUSTOM_CREW_LOGO_TXD_NAME_FOR_PLAYER(PLAYER_ID()))
OVERRIDE_PED_CREW_LOGO_TEXTURE(sApplyOutfitData.pedID, GET_CUSTOM_CREW_LOGO_TXD_NAME_FOR_PLAYER(PLAYER_ID()), GET_CUSTOM_CREW_LOGO_TXD_TEXTURE_FOR_PLAYER(PLAYER_ID(), CUSTOM_CREW_LOGO_PRESET))
ENDIF
ENDIF
IF NOT bSkip
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - adding DLC overlay ", sDLCTattooData.Preset, " ", sDLCTattooData.Label)
ADD_PED_DECORATION_FROM_HASHES(sApplyOutfitData.pedID, sDLCTattooData.Collection, sDLCTattooData.Preset)
ADD_SECONDARY_PED_DECORATION_FROM_HASHES(sApplyOutfitData.pedID, sDLCTattooData.Collection, sDLCTattooData.Preset)
ENDIF
ENDIF
ENDREPEAT
ENDIF
ENDREPEAT
ENDIF
#ENDIF
endif
//-------------------------------------------------------------------------------------------------
//Fix for bug 1992694, heist outfit hats can be knocked off by enemies
SET_PED_CAN_LOSE_PROPS_ON_DAMAGE(sApplyOutfitData.pedID,FALSE)
RELEASE_PRELOADED_MP_HEIST_OUTFIT(sApplyOutfitData.pedID)
//setting streaming request checks
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]1 - heist outfit set move to next streaming requests stage: outfit: ",enum_to_int(sApplyOutfitData.eOutfit)," gear: ",enum_to_int(sApplyOutfitData.eGear)," mask: ",enum_to_int(sApplyOutfitData.eMask))
sApplyOutfitData.eApplyStage = AOS_STREAM_REQ
break
case AOS_STREAM_REQ
if not IS_FAKE_MULTIPLAYER_MODE_SET()
IF (NOT HAVE_ALL_STREAMING_REQUESTS_COMPLETED(sApplyOutfitData.pedID))
OR (NOT HAS_PED_HEAD_BLEND_FINISHED(sApplyOutfitData.pedID))
#IF IS_DEBUG_BUILD
IF NOT HAVE_ALL_STREAMING_REQUESTS_COMPLETED(sApplyOutfitData.pedID)
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]2 - waiting on streaming requests for ped")
ENDIF
IF NOT HAS_PED_HEAD_BLEND_FINISHED(sApplyOutfitData.pedID)
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]2 - waiting on head blend for ped")
ENDIF
#ENDIF
RETURN FALSE
ELSE
FINALIZE_HEAD_BLEND(sApplyOutfitData.pedID)
RELEASE_PRELOADED_MP_HEIST_OUTFIT(sApplyOutfitData.pedID)
sApplyOutfitData.bOutfitPrevSet = true
sApplyOutfitData.eApplyStage = AOS_PRELOAD //reset outfit data stage to preload check stage
sApplyOutfitData.ePreloadStage = POS_REQUEST // reset the preload to stage requesting for the next struct created.
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]2 - heist outfit streaming requests complete return true")
RETURN TRUE
ENDIF
ELSE
RELEASE_PRELOADED_MP_HEIST_OUTFIT(sApplyOutfitData.pedID)
sApplyOutfitData.bOutfitPrevSet = true
sApplyOutfitData.eApplyStage = AOS_PRELOAD //reset outfit data stage to preload check stage
sApplyOutfitData.ePreloadStage = POS_REQUEST // reset the preload to stage requesting for the next struct created.
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT]2 - IS_FAKE_MULTIPLAYER_MODE_SET streaming requests skipped return true")
RETURN TRUE
ENDIF
break
endswitch
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - outfit data requested: ",enum_to_int(sApplyOutfitData.eOutfit))
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - mask data requested: ",enum_to_int(sApplyOutfitData.eMask))
return true
endif
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - outfit is default or max: ",enum_to_int(sApplyOutfitData.eOutfit))
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - mask is default or max: ",enum_to_int(sApplyOutfitData.eMask))
return true
endif
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - ped not an MP model")
SCRIPT_ASSERT("[SET_PED_MP_OUTFIT] - ped not an MP model")
return true
endif
else
CPRINTLN(DEBUG_MISSION,"[SET_PED_MP_OUTFIT] - ped dead or dying")
return true
endif
return False
ENDFUNC
/// PURPOSE:
///
/// PED_INDEX pedID
/// INT iOutfitSlot
/// BOOL bSpareSlot (default FALSE)
/// bSkipHand (default FALSE) - if true hand (parachute) won't be saved
PROC STORE_PED_CLOTHES_IN_MP_OUTFIT_SLOT(PED_INDEX pedID, INT iOutfitSlot, BOOL bSpareSlot = FALSE, BOOL bSkipHand = FALSE)
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
INT iComp
REPEAT NUM_PED_COMPONENTS iComp
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][iComp] = GET_PED_DRAWABLE_VARIATION(pedID, INT_TO_ENUM(PED_COMPONENT, iComp))
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][iComp] = GET_PED_TEXTURE_VARIATION(pedID, INT_TO_ENUM(PED_COMPONENT, iComp))
ENDREPEAT
INT iProp
REPEAT 9 iProp
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][iProp] = GET_PED_PROP_INDEX(pedID, INT_TO_ENUM(PED_PROP_POSITION, iProp))
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][iProp] = GET_PED_PROP_TEXTURE_INDEX(pedID, INT_TO_ENUM(PED_PROP_POSITION, iProp))
ENDREPEAT
// Don't save dunce hat.
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ENUM_TO_INT(ANCHOR_HEAD)] = 1
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ENUM_TO_INT(ANCHOR_HEAD)] = -1
ENDIF
// Don't save parts of the scuba outfit
INT iDLCBerd = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_BERD), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_BERD], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_BERD])
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCBerd, DLC_RESTRICTION_TAG_SCUBA_GEAR, ENUM_TO_INT(SHOP_PED_COMPONENT))
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_BERD] = 0
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_BERD] = 0
ENDIF
INT iDLCSpecial = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_SPECIAL), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_SPECIAL], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_SPECIAL])
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCSpecial, DLC_RESTRICTION_TAG_SCUBA_GEAR, ENUM_TO_INT(SHOP_PED_COMPONENT))
IF GET_ENTITY_MODEL(pedID) = MP_M_FREEMODE_01
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_SPECIAL] = 15
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_SPECIAL] = 0
ELSE
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_SPECIAL] = 3
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_SPECIAL] = 0
ENDIF
ENDIF
INT iDLCEyePropHash = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(pedID), ENUM_TO_INT(ANCHOR_EYES), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ANCHOR_EYES], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][ANCHOR_EYES])
IF DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCEyePropHash, DLC_RESTRICTION_TAG_SCUBA_GEAR, ENUM_TO_INT(SHOP_PED_PROP))
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ANCHOR_EYES] = -1
ENDIF
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewA[iOutfitSlot] = FALSE
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewB[iOutfitSlot] = FALSE
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewC[iOutfitSlot] = FALSE
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewD[iOutfitSlot] = FALSE
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewE[iOutfitSlot] = FALSE
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewF[iOutfitSlot] = FALSE
// Skip head
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_HEAD] = -1
// Skip hand (parachutes)
IF bSkipHand
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_HAND] = -1
ENDIF
// Only store hair if it's NVG
INT iDLCNameHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(pedID), ENUM_TO_INT(PED_COMP_HAIR), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_HAIR], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_HAIR])
IF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCNameHash, DLC_RESTRICTION_TAG_NIGHT_VISION, ENUM_TO_INT(SHOP_PED_COMPONENT))
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_HAIR] = -1
ENDIF
// Store shirt-hash
#IF USE_TU_CHANGES
TATTOO_NAME_ENUM eShirtDecal = GET_TATTOO_ENUM_FROM_DLC_HASH(GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH), GET_TATTOO_FACTION_FOR_PED(pedID))
IF eShirtDecal != INVALID_TATTOO
AND IS_MP_TATTOO_CURRENT(eShirtDecal)
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_ShirtDecal[iOutfitSlot] = GET_MP_INT_CHARACTER_STAT(MP_STAT_TSHIRT_DECAL_HASH)
ELSE
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_ShirtDecal[iOutfitSlot] = 0
ENDIF
if IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_A)
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewA[iOutfitSlot] = TRUE
ENDIF
if IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_B)
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewB[iOutfitSlot] = TRUE
ENDIF
if IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_C)
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewC[iOutfitSlot] = TRUE
ENDIF
if IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_D)
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewD[iOutfitSlot] = TRUE
ENDIF
if IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_E)
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewE[iOutfitSlot] = TRUE
ENDIF
if IS_MP_TATTOO_CURRENT(TATTOO_MP_FM_CREW_F)
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_TatCrewF[iOutfitSlot] = TRUE
ENDIF
#ENDIF
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot] = TRUE
CPRINTLN(DEBUG_PED_COMP, "STORE_PED_CLOTHES_IN_MP_OUTFIT_SLOT - STORED TO SLOT ", iOutfitSlot)
ENDIF
ENDPROC
PROC REMOVE_MP_OUTFIT_IN_SLOT(INT iOutfitSlot, BOOL bSpareSlot = FALSE)
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot] = FALSE
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.tlSavedOutfit_Name[iOutfitSlot] = ""
CPRINTLN(DEBUG_PED_COMP, "REMOVE_MP_OUTFIT_IN_SLOT - CLEARED SLOT ", iOutfitSlot)
ENDIF
ENDPROC
PROC SET_MP_OUTFIT_NAME_IN_SLOT(INT iOutfitSlot, STRING sOutfitName, BOOL bSpareSlot = FALSE)
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.tlSavedOutfit_Name[iOutfitSlot] = sOutfitName
CPRINTLN(DEBUG_PED_COMP, "SET_MP_OUTFIT_NAME_IN_SLOT - NAME CHANGED TO '", sOutfitName, "' for SLOT ", iOutfitSlot)
ENDIF
ENDPROC
FUNC BOOL IS_MP_OUTFIT_STORED_IN_SLOT(INT iOutfitSlot, BOOL bSpareSlot = FALSE)
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
RETURN g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot]
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL GET_MP_OUTFIT_NAME_IN_SLOT(INT iOutfitSlot, TEXT_LABEL_31 &tlOutfitName, BOOL bSpareSlot = FALSE)
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot]
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
tlOutfitName = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.tlSavedOutfit_Name[iOutfitSlot]
IF NOT IS_STRING_NULL_OR_EMPTY(tlOutfitName)
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL PRELOAD_MP_OUTFIT_STORED_IN_SLOT(PED_INDEX pedID, INT iOutfitSlot, BOOL bSpareSlot = FALSE)
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot]
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
INT i
REPEAT NUM_PED_COMPONENTS i
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][i] != -1
SET_PED_PRELOAD_VARIATION_DATA(pedID, INT_TO_ENUM(PED_COMPONENT, i), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][i], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][i])
ENDIF
ENDREPEAT
REPEAT 9 i
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][i] != -1
SET_PED_PRELOAD_PROP_DATA(pedID, INT_TO_ENUM(PED_PROP_POSITION, i), g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][i], g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][i])
ENDIF
ENDREPEAT
ENDIF
RETURN (HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(pedID) AND HAS_PED_PRELOAD_PROP_DATA_FINISHED(pedID))
ENDFUNC
FUNC BOOL IS_MP_OUTFIT_STORED_IN_SLOT_CURRENT(PED_INDEX pedID, INT iOutfitSlot, BOOL bSpareSlot = FALSE)
IF iOutfitSlot >= 0
AND iOutfitSlot < MAX_CUSTOM_OUTFIT_SLOTS
AND g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.bSaveOutfit_Stored[iOutfitSlot]
AND (bSpareSlot = (iOutfitSlot = SPARE_CUSTOM_OUTFIT_SLOT_INDEX)) // Make sure spare slot flag and index match
INT iPropID[5]
iPropID[0] = GET_PED_PROP_INDEX(pedID, ANCHOR_HEAD)
iPropID[1] = GET_PED_PROP_INDEX(pedID, ANCHOR_EYES)
iPropID[2] = GET_PED_PROP_INDEX(pedID, ANCHOR_LEFT_WRIST)
iPropID[3] = GET_PED_PROP_INDEX(pedID, ANCHOR_RIGHT_WRIST)
iPropID[4] = GET_PED_PROP_INDEX(pedID, ANCHOR_EARS)
// Check main items.
IF GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_JBIB) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_JBIB]
AND GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_LEG) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_LEG]
AND GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_FEET) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_FEET]
AND GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_SPECIAL]
AND GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_SPECIAL2) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_SPECIAL2]
AND GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_TORSO) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_TORSO]
AND GET_PED_DRAWABLE_VARIATION(pedID, PED_COMP_BERD) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompDraw[iOutfitSlot][PED_COMP_BERD]
AND GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_JBIB) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_JBIB]
AND GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_LEG) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_LEG]
AND GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_FEET) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_FEET]
AND GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_SPECIAL) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_SPECIAL]
AND GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_SPECIAL2) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_SPECIAL2]
AND GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_TORSO) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_TORSO]
AND GET_PED_TEXTURE_VARIATION(pedID, PED_COMP_BERD) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_CompTex[iOutfitSlot][PED_COMP_BERD]
AND iPropID[0] = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ANCHOR_HEAD]
AND iPropID[1] = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ANCHOR_EYES]
AND iPropID[2] = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ANCHOR_LEFT_WRIST]
AND iPropID[3] = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ANCHOR_RIGHT_WRIST]
AND iPropID[4] = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropID[iOutfitSlot][ANCHOR_EARS]
AND (iPropID[0] = -1 OR GET_PED_PROP_TEXTURE_INDEX(pedID, ANCHOR_HEAD) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][ANCHOR_HEAD])
AND (iPropID[1] = -1 OR GET_PED_PROP_TEXTURE_INDEX(pedID, ANCHOR_EYES) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][ANCHOR_EYES])
AND (iPropID[2] = -1 OR GET_PED_PROP_TEXTURE_INDEX(pedID, ANCHOR_LEFT_WRIST) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][ANCHOR_LEFT_WRIST])
AND (iPropID[3] = -1 OR GET_PED_PROP_TEXTURE_INDEX(pedID, ANCHOR_RIGHT_WRIST) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][ANCHOR_RIGHT_WRIST])
AND (iPropID[4] = -1 OR GET_PED_PROP_TEXTURE_INDEX(pedID, ANCHOR_EARS) = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iSavedOutfit_PropTex[iOutfitSlot][ANCHOR_EARS])
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
PROC SET_MP_RACING_OUTFIT_SLOT(INT value, INT slot = -1)
SET_MP_INT_CHARACTER_STAT(MP_STAT_RACE_OUTFIT_CURRENT, value, slot)
ENDPROC
FUNC INT GET_MP_RACING_OUTFIT_SLOT(INT slot = -1)
INT iOutfitSlot = GET_MP_INT_CHARACTER_STAT(MP_STAT_RACE_OUTFIT_CURRENT, slot)
IF iOutfitSlot >= MAX_CUSTOM_OUTFIT_SLOTS_FOR_PLAYER
iOutfitSlot = 0
SET_MP_RACING_OUTFIT_SLOT(iOutfitSlot, slot)
ENDIF
RETURN iOutfitSlot
ENDFUNC
//PURPOSE: Retursn TRUE if the player is visibly wearing a parachute
FUNC BOOL IS_PLAYER_WEARING_PARACHUTE()
RETURN IS_MP_PED_WEARING_PARACHUTE(PLAYER_PED_ID())
ENDFUNC
//PURPOSE: Put Hood down if player has HazMat Hood Up, but no HazMat Mask
PROC CHECK_HAZ_MAT_HOOD_STATE()
IF NOT IS_PED_WEARING_HAZ_MASK(PLAYER_PED_ID())
AND IS_PED_WEARING_HAZ_HOOD_UP(PLAYER_PED_ID())
INT HoodID
INT HoodTxtID
HoodID = GET_CHEMSUIT_HOOD_VARIATION(PLAYER_PED_ID(), FALSE)
HoodTxtID = GET_PED_TEXTURE_VARIATION(PLAYER_PED_ID(), PED_COMP_SPECIAL)
SET_PED_COMPONENT_VARIATION(PLAYER_PED_ID(), PED_COMP_SPECIAL,HoodID, HoodTxtID)
CLEAR_PED_PROP(PLAYER_PED_ID(), ANCHOR_HEAD)
CPRINTLN(DEBUG_MISSION,"[CHECK_HAZ_MAT_HOOD_STATE] Ped wearing haz suit but no chem mask. Set special component to hood down")
ENDIF
ENDPROC
/// PURPOSE: Returns TRUE if the ped has on a helmet that covers their face.
FUNC BOOL IS_PED_WEARING_A_FULL_FACE_HELMET(PED_INDEX pedID)
//No Helmet
IF NOT IS_PED_WEARING_A_HELMET(pedID)
RETURN FALSE
ENDIF
PED_COMP_NAME_ENUM ePropItem = GET_PROP_ITEM_FROM_VARIATIONS(pedID, GET_PED_PROP_INDEX(pedID, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(pedID, ANCHOR_HEAD), ANCHOR_HEAD)
INT iDLCItemHash = GET_HASH_NAME_FOR_PROP(NATIVE_TO_INT(pedID), ENUM_TO_INT(ANCHOR_HEAD), GET_PED_PROP_INDEX(pedID, ANCHOR_HEAD), GET_PED_PROP_TEXTURE_INDEX(pedID, ANCHOR_HEAD))
IF IS_ITEM_A_FULL_FACE_HELMET(GET_ENTITY_MODEL(pedID), COMP_TYPE_PROPS, ePropItem, iDLCItemHash)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
PROC VALIDATE_INVISIBLE_PED_COMPONENTS(INT &iPedValidationStage)
MODEL_NAMES ePedModel = GET_ENTITY_MODEL(PLAYER_PED_ID())
PED_COMP_NAME_ENUM eCurrentJbib = GET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_JBIB)
PED_COMP_NAME_ENUM eCurrentSpecial = GET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_SPECIAL)
PED_COMP_NAME_ENUM eCurrentLegs = GET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_LEGS)
PED_COMP_NAME_ENUM eCurrentTorso = GET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_TORSO)
INT iDLCLegsHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(PLAYER_PED_ID()), ENUM_TO_INT(PED_COMP_LEG), GET_PED_DRAWABLE_VARIATION(PLAYER_PED_ID(), PED_COMP_LEG), GET_PED_TEXTURE_VARIATION(PLAYER_PED_ID(), PED_COMP_LEG))
INT iDLCJbibHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(PLAYER_PED_ID()), ENUM_TO_INT(PED_COMP_JBIB), GET_PED_DRAWABLE_VARIATION(PLAYER_PED_ID(), PED_COMP_JBIB), GET_PED_TEXTURE_VARIATION(PLAYER_PED_ID(), PED_COMP_JBIB))
INT iDLCTorsoHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(PLAYER_PED_ID()), ENUM_TO_INT(PED_COMP_TORSO), GET_PED_DRAWABLE_VARIATION(PLAYER_PED_ID(), PED_COMP_TORSO), GET_PED_TEXTURE_VARIATION(PLAYER_PED_ID(), PED_COMP_TORSO))
scrShopPedComponent componentItem
IF ePedModel = MP_M_FREEMODE_01
// Invisible legs
IF iPedValidationStage = 0
IF eCurrentLegs >= LEGS_FMM_11_0 AND eCurrentLegs <= LEGS_FMM_11_15
OR iDLCLegsHash = HASH("DLC_MP_APA_M_LEGS_0_0")
PED_COMP_NAME_ENUM eDefaultItem = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_LEGS, -1)
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_LEGS, eDefaultItem, FALSE)
FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP(PLAYER_PED_ID(), COMP_TYPE_LEGS, eDefaultItem, TRUE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Male player has invalid legs, correcting.")
ENDIF
iPedValidationStage++
EXIT
ENDIF
// Invisible arms + body
IF iPedValidationStage = 1
IF iDLCJbibHash = HASH("DLC_MP_APA_M_JBIB_0_0")
PED_COMP_NAME_ENUM eDefaultItem = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_JBIB, -1)
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_JBIB, eDefaultItem, FALSE)
FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP(PLAYER_PED_ID(), COMP_TYPE_JBIB, eDefaultItem, TRUE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Male player has invalid arms + body, correcting.")
ENDIF
iPedValidationStage++
EXIT
ENDIF
// Invisible arms + body
IF iPedValidationStage = 2
IF eCurrentJbib = JBIB_FMM_15_0
IF eCurrentTorso != TORSO_FMM_15_0
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_10_0") // Black Driving
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_10_1") // Brown Driving
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_21_0") // Black Leather
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_21_1") // Brown Leather
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_32_0") // Black Wool
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_32_1") // Grey Wool
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_43_0") // Black Fingerless
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_43_1") // Grey Fingerless
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_54_0") // Garbage
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_65_0") // White Cotton
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_76_0") // Blue Surgical
AND iDLCTorsoHash != HASH("DLC_MP_HEIST_M_TORSO_76_1") // White Surgical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_0") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_1") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_2") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_3") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_4") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_5") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_6") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_7") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_8") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_9") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_10") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_11") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_12") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_13") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_14") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_15") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_16") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_17") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_18") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_0_19") // GR Armoured
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_0") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_1") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_2") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_3") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_4") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_5") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_6") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_7") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_8") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_9") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_10") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_11") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_12") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_13") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_14") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_15") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_16") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_17") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_18") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_GR_M_TORSO_1_19") // GR Tactical
AND iDLCTorsoHash != HASH("DLC_MP_SUM_M_TORSO_1_0") // Summer Tactical
AND iDLCTorsoHash != HASH("DLC_MP_SUM_M_TORSO_1_1") // Summer Tactical
AND iDLCTorsoHash != HASH("DLC_MP_SUM_M_TORSO_1_2") // Summer Tactical
AND iDLCTorsoHash != HASH("DLC_MP_SUM_M_TORSO_1_3") // Summer Tactical
AND iDLCTorsoHash != HASH("DLC_MP_SUM_M_TORSO_1_4") // Summer Tactical
AND iDLCTorsoHash != HASH("DLC_MP_SUM_M_TORSO_1_5") // Summer Tactical
AND iDLCTorsoHash != HASH("DLC_MP_SUM_M_TORSO_1_6") // Summer Tactical
AND iDLCTorsoHash != HASH("DLC_MP_SUM_M_TORSO_1_7") // Summer Tactical
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Male player has invalid arms + body, correcting.")
PED_COMP_NAME_ENUM eDefaultItem = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_JBIB, -1)
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_JBIB, eDefaultItem, FALSE)
FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP(PLAYER_PED_ID(), COMP_TYPE_JBIB, eDefaultItem, TRUE)
ENDIF
ENDIF
iPedValidationStage++
EXIT
ENDIF
//Invisible arms
IF iPedValidationStage = 3
PED_COMP_NAME_ENUM eNoGlovesItem = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, eCurrentSpecial, eCurrentJbib, eCurrentLegs)
// No gloves
IF eNoGlovesItem = DUMMY_PED_COMP
eNoGlovesItem = GET_PED_COMPONENT_ITEM_REQUISITE_MP(PLAYER_PED_ID(), ePedModel, COMP_TYPE_JBIB, eCurrentJbib, COMP_TYPE_TORSO)
SWITCH iDLCJbibHash
CASE HASH("DLC_MP_STUNT_M_JBIB_5_0")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_1")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_2")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_3")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_4")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_5")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_6")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_7")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_8")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_9")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_10")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_11")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_12")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_13")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_14")
CASE HASH("DLC_MP_STUNT_M_JBIB_5_15")
eNoGlovesItem = TORSO_FMM_4_0
BREAK
ENDSWITCH
ENDIF
IF eCurrentTorso < TORSO_FMM_DLC
IF eCurrentTorso != eNoGlovesItem
AND eNoGlovesItem != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_TORSO, eNoGlovesItem, FALSE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Male player has invalid arms (eCurrentTorso[", eCurrentTorso, "] != eNoGlovesItem[", eNoGlovesItem, "]), correcting.")
ENDIF
ELIF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTorsoHash, DLC_RESTRICTION_TAG_PILOT_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTorsoHash, DLC_RESTRICTION_TAG_MOTOX_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTorsoHash, DLC_RESTRICTION_TAG_RACE_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTorsoHash, DLC_RESTRICTION_TAG_DOCK_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Grab the base glove ID and check if the uppr matches the no gloves option.
GET_SHOP_PED_COMPONENT(iDLCTorsoHash, componentItem)
INT iBaseGloveHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(PLAYER_PED_ID()), ENUM_TO_INT(PED_COMP_TORSO), componentItem.m_drawableIndex, 0)
scrShopPedComponent baseComponentItem
INIT_SHOP_PED_COMPONENT(baseComponentItem)
GET_SHOP_PED_COMPONENT(iBaseGloveHash, baseComponentItem)
INT iBaseGloveTextHash = GET_HASH_KEY(baseComponentItem.m_textLabel)
INT iGloveType
BOOL bGlovesValid = FALSE
INT iAltGloveHash = -1
INT iGloveHashCheck
scrShopPedComponent checkComponentItem
REPEAT NUMBER_OF_GLOVE_TYPES iGloveType
iGloveHashCheck = GET_DLC_GLOVE_HASH_FOR_UPPR(ePedModel, ENUM_TO_INT(eNoGlovesItem), iGloveType)
IF iBaseGloveHash = iGloveHashCheck
bGlovesValid = TRUE
ELIF iGloveHashCheck != -1
// same text label? store.
INIT_SHOP_PED_COMPONENT(checkComponentItem)
GET_SHOP_PED_COMPONENT(iGloveHashCheck, checkComponentItem)
IF iBaseGloveTextHash = GET_HASH_KEY(checkComponentItem.m_textLabel)
iAltGloveHash = iGloveHashCheck
ENDIF
ENDIF
ENDREPEAT
IF NOT bGlovesValid
AND iAltGloveHash != -1
INIT_SHOP_PED_COMPONENT(componentItem)
GET_SHOP_PED_COMPONENT(iAltGloveHash, componentItem)
SET_PED_COMPONENT_VARIATION(PLAYER_PED_ID(), PED_COMP_TORSO, componentItem.m_drawableIndex, GET_PED_TEXTURE_VARIATION(PLAYER_PED_ID(), PED_COMP_TORSO))
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Male player has invalid gloves, correcting.")
bGlovesValid = TRUE
ENDIF
IF NOT bGlovesValid
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_TORSO, eNoGlovesItem, FALSE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Male player has invalid gloves \"", iDLCTorsoHash, "\", removing.")
ENDIF
ENDIF
iPedValidationStage++
EXIT
ENDIF
ELIF ePedModel = MP_F_FREEMODE_01
// Invisible legs
IF iPedValidationStage = 0
IF eCurrentLegs >= LEGS_FMF_13_0 AND eCurrentLegs <= LEGS_FMF_13_15
OR iDLCLegsHash = HASH("DLC_MP_APA_F_LEGS_0_0")
PED_COMP_NAME_ENUM eDefaultItem = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_LEGS, -1)
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_LEGS, eDefaultItem, FALSE)
FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP(PLAYER_PED_ID(), COMP_TYPE_LEGS, eDefaultItem, TRUE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Female player has invalid legs, correcting.")
ENDIF
iPedValidationStage++
EXIT
ENDIF
// Invisible arms + body
IF iPedValidationStage = 1
IF iDLCJbibHash = HASH("DLC_MP_APA_F_JBIB_0_0")
PED_COMP_NAME_ENUM eDefaultItem = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_JBIB, -1)
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_JBIB, eDefaultItem, FALSE)
FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP(PLAYER_PED_ID(), COMP_TYPE_JBIB, eDefaultItem, TRUE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Female player has invalid arms + body, correcting.")
ENDIF
iPedValidationStage++
EXIT
ENDIF
//Invisible arms
IF iPedValidationStage = 2
PED_COMP_NAME_ENUM eNoGlovesItem = GET_TORSO_FOR_SPECIAL_AND_JBIB_COMBO(ePedModel, eCurrentSpecial, eCurrentJbib, eCurrentLegs)
// No gloves
IF eNoGlovesItem = DUMMY_PED_COMP
eNoGlovesItem = GET_PED_COMPONENT_ITEM_REQUISITE_MP(PLAYER_PED_ID(), ePedModel, COMP_TYPE_JBIB, eCurrentJbib, COMP_TYPE_TORSO)
SWITCH iDLCJbibHash
CASE HASH("DLC_MP_VAL_F_JBIB0_0")
CASE HASH("DLC_MP_VAL_F_JBIB0_1")
CASE HASH("DLC_MP_VAL_F_JBIB0_2")
CASE HASH("DLC_MP_VAL_F_JBIB0_3")
CASE HASH("DLC_MP_VAL_F_JBIB0_4")
CASE HASH("DLC_MP_VAL_F_JBIB0_5")
eNoGlovesItem = TORSO_FMF_11_0
BREAK
CASE HASH("DLC_MP_STUNT_F_JBIB_5_0")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_1")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_2")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_3")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_4")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_5")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_6")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_7")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_8")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_9")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_10")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_11")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_12")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_13")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_14")
CASE HASH("DLC_MP_STUNT_F_JBIB_5_15")
eNoGlovesItem = TORSO_FMF_3_0
BREAK
ENDSWITCH
ENDIF
IF eCurrentTorso < TORSO_FMF_DLC
IF eCurrentTorso != eNoGlovesItem
AND eNoGlovesItem != DUMMY_PED_COMP
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_TORSO, eNoGlovesItem, FALSE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Female player has invalid arms, correcting.")
ENDIF
ELIF NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTorsoHash, DLC_RESTRICTION_TAG_PILOT_SUIT, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTorsoHash, DLC_RESTRICTION_TAG_MOTOX_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTorsoHash, DLC_RESTRICTION_TAG_RACE_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
AND NOT DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(iDLCTorsoHash, DLC_RESTRICTION_TAG_DOCK_GLOVES, ENUM_TO_INT(SHOP_PED_COMPONENT))
// Grab the base glove ID and check if the uppr matches the no gloves option.
GET_SHOP_PED_COMPONENT(iDLCTorsoHash, componentItem)
INT iBaseGloveHash = GET_HASH_NAME_FOR_COMPONENT(NATIVE_TO_INT(PLAYER_PED_ID()), ENUM_TO_INT(PED_COMP_TORSO), componentItem.m_drawableIndex, 0)
scrShopPedComponent baseComponentItem
INIT_SHOP_PED_COMPONENT(baseComponentItem)
GET_SHOP_PED_COMPONENT(iBaseGloveHash, baseComponentItem)
INT iBaseGloveTextHash = GET_HASH_KEY(baseComponentItem.m_textLabel)
INT iGloveType
BOOL bGlovesValid = FALSE
INT iAltGloveHash = -1
INT iGloveHashCheck
scrShopPedComponent checkComponentItem
REPEAT NUMBER_OF_GLOVE_TYPES iGloveType
iGloveHashCheck = GET_DLC_GLOVE_HASH_FOR_UPPR(ePedModel, ENUM_TO_INT(eNoGlovesItem), iGloveType)
IF iBaseGloveHash = iGloveHashCheck
bGlovesValid = TRUE
ELIF iGloveHashCheck != -1
// same text label? store.
INIT_SHOP_PED_COMPONENT(checkComponentItem)
GET_SHOP_PED_COMPONENT(iGloveHashCheck, checkComponentItem)
IF iBaseGloveTextHash = GET_HASH_KEY(checkComponentItem.m_textLabel)
iAltGloveHash = iGloveHashCheck
ENDIF
ENDIF
ENDREPEAT
IF NOT bGlovesValid
AND iAltGloveHash != -1
INIT_SHOP_PED_COMPONENT(componentItem)
GET_SHOP_PED_COMPONENT(iAltGloveHash, componentItem)
SET_PED_COMPONENT_VARIATION(PLAYER_PED_ID(), PED_COMP_TORSO, componentItem.m_drawableIndex, componentItem.m_textureIndex)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Female player has invalid gloves, correcting.")
bGlovesValid = TRUE
ENDIF
IF NOT bGlovesValid
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_TORSO, eNoGlovesItem, FALSE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Female player has invalid gloves \"", iDLCTorsoHash, "\", removing.")
ENDIF
ENDIF
iPedValidationStage++
EXIT
ENDIF
IF iPedValidationStage = 3
// Dress legs
IF iDLCLegsHash = HASH("DLC_MP_VAL_F_LEGS2_0")
IF NOT IS_ITEM_A_DRESS(ePedModel, COMP_TYPE_JBIB, eCurrentJbib, iDLCJbibHash)
PED_COMP_NAME_ENUM eDefaultItem = GET_DUMMY_COMPONENT_FOR_SLOT(ePedModel, COMP_TYPE_LEGS, -1)
SET_PED_COMP_ITEM_CURRENT_MP(PLAYER_PED_ID(), COMP_TYPE_LEGS, eDefaultItem, FALSE)
FORCE_VALID_PED_COMPONENT_COMBO_FOR_ITEM_MP(PLAYER_PED_ID(), COMP_TYPE_LEGS, eDefaultItem, TRUE)
PRINTLN("PROCESS_INVALID_PED_COMPONENTS - Female player has invalid legs, correcting.")
ENDIF
ENDIF
iPedValidationStage++
EXIT
ENDIF
ENDIF
// Nothing hit so reset.
iPedValidationStage = 0
ENDPROC
ENUM CLOTHING_AWARD_ENUM
CLOTHING_AWARD_SETUPMISSION = 0,
CLOTHING_AWARD_RESUPPLYMISSION,
CLOTHING_AWARD_SELLMISSION,
CLOTHING_AWARD_COVOPMISSION,
CLOTHING_AWARD_7COVOPMISSION,
CLOTHING_AWARD_SELLMISSION_EARNINGS,
CLOTHING_AWARD_ADVMODE,
CLOTHING_AWARD_PURCH_BUNKER,
CLOTHING_AWARD_PURCH_TRUCK,
CLOTHING_AWARD_PURCH_WEAPONUPGRADE,
CLOTHING_AWARD_PURCH_SINGLEWEAPONIZEDVEHICLE,
CLOTHING_AWARD_PURCH_ALLWEAPONIZEDVEHICLE,
CLOTHING_AWARD_PURCH_UPGRADEWEAPONIZEDVEHICLE,
CLOTHING_AWARD_PURCH_UPGRADETRAILER,
CLOTHING_AWARD_PURCH_BALLISTIC
ENDENUM
PROC UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_ENUM eAwardItem)
SWITCH eAwardItem
CASE CLOTHING_AWARD_SETUPMISSION
IF g_sMPTunables.bENABLE_AWARD_SETUPMISSION
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_SETUPMISSION)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC1" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_RESUPPLYMISSION
IF g_sMPTunables.bENABLE_AWARD_RESUPPLYMISSION
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_RESUPPLYMISSION)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC2" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_SELLMISSION
IF g_sMPTunables.bENABLE_AWARD_SELLMISSION
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_SELLMISSION)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC3" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_COVOPMISSION
IF g_sMPTunables.bENABLE_AWARD_COVOPMISSION
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_COVOPMISSION)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC5" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_7COVOPMISSION
IF g_sMPTunables.bENABLE_AWARD_7COVOPMISSION
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_7COVOPMISSION)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC6" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_SELLMISSION_EARNINGS
IF g_sMPTunables.bENABLE_AWARD_SELLMISSION_EARNINGS
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_SELLMISSION_EARNINGS)
// ticker?
PRINT_TICKER_WITH_INT("CLOTHAWDSTRAP3", g_sMPTunables.iAMOUNT_AWARD_SELLMISSION_EARNINGS)
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_ADVMODE
IF g_sMPTunables.bENABLE_AWARD_ADVMODE
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_ADVMODE)
// ticker?//inumber_of_times_to_unlock_adversary_award
PRINT_TICKER_WITH_INT("CLOTHAWDSTRAP5", g_sMPTunables.inumber_of_times_to_unlock_adversary_award )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_PURCH_BUNKER
IF g_sMPTunables.bENABLE_AWARD_PURCH_BUNKER
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_BUNKER)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC8")
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_PURCH_TRUCK
IF g_sMPTunables.bENABLE_AWARD_PURCH_TRUCK
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_TRUCK)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC9" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_PURCH_WEAPONUPGRADE
IF g_sMPTunables.bENABLE_AWARD_PURCH_WEAPONUPGRADE
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_WEAPONUPGRADE)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC10" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_PURCH_SINGLEWEAPONIZEDVEHICLE
IF g_sMPTunables.bENABLE_AWARD_PURCH_SINGLEWEAPONIZEDVEHICLE
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_SINGLEWEAPONIZEDVEHICLE)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC11" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_PURCH_ALLWEAPONIZEDVEHICLE
IF g_sMPTunables.bENABLE_AWARD_PURCH_ALLWEAPONIZEDVEHICLE
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_ALLWEAPONIZEDVEHICLE)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC12" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_PURCH_UPGRADEWEAPONIZEDVEHICLE
IF g_sMPTunables.bENABLE_AWARD_PURCH_UPGRADEWEAPONIZEDVEHICLE
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_UPGRADEWEAPONIZEDVEHICLE)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC13" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_PURCH_UPGRADETRAILER
IF g_sMPTunables.bENABLE_AWARD_PURCH_UPGRADETRAILER
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_UPGRADETRAILER)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC14" )
ENDIF
ENDIF
BREAK
CASE CLOTHING_AWARD_PURCH_BALLISTIC
IF g_sMPTunables.bENABLE_AWARD_PURCH_BALLISTIC
IF UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_BALLISTIC)
// ticker?
PRINT_TICKER_WITH_STRING("CLOTHAWDSTRAP2","CLOTHAWDDESC15" )
ENDIF
ENDIF
BREAK
ENDSWITCH
ENDPROC
PROC DISPLAY_SPECIAL_EVENT_CLOTHING_AWARD_HELP_MESSAGE()
IF g_sMPTunables.bENABLE_AWARD_SETUPMISSION
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_SETUPMISSION)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC1" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_RESUPPLYMISSION
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_RESUPPLYMISSION)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC2" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_SELLMISSION
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_SELLMISSION)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC3" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_COVOPMISSION
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_COVOPMISSION)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC5" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_7COVOPMISSION
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_7COVOPMISSION)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC6" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_SELLMISSION_EARNINGS
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_SELLMISSION_EARNINGS)
//PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC7" )
PRINT_TICKER_WITH_INT("CLOTHAWDSTRAP4", g_sMPTunables.iAMOUNT_AWARD_SELLMISSION_EARNINGS)
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_ADVMODE
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_ADVMODE)
PRINT_TICKER_WITH_INT("CLOTHAWDSTRAP5b", g_sMPTunables.inumber_of_times_to_unlock_adversary_award )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_PURCH_BUNKER
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_BUNKER)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC8" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_PURCH_TRUCK
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_TRUCK)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC9" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_PURCH_WEAPONUPGRADE
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_WEAPONUPGRADE)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC10" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_PURCH_SINGLEWEAPONIZEDVEHICLE
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_SINGLEWEAPONIZEDVEHICLE)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC11" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_PURCH_ALLWEAPONIZEDVEHICLE
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_ALLWEAPONIZEDVEHICLE)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC12" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_PURCH_UPGRADEWEAPONIZEDVEHICLE
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_UPGRADEWEAPONIZEDVEHICLE)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC13" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_PURCH_UPGRADETRAILER
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_UPGRADETRAILER)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC14" )
ENDIF
ENDIF
IF g_sMPTunables.bENABLE_AWARD_PURCH_BALLISTIC
IF NOT IS_UNLOCK_DLC_CLOTHING_ITEM(g_sMPTunables.iITEM_AWARD_PURCH_BALLISTIC)
PRINT_HELP_WITH_STRING("CLOTHAWDSTRAP","CLOTHAWDDESC15" )
ENDIF
ENDIF
ENDPROC