////////////////////////////////////////////////////////////////////////////////////////// // // // 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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/ ") 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 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(" 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(" 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(" 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(" timer on, TIMER EXPIRED ", GET_NET_TIMER_STRING(sData.stDisabledViaPIMTimer), " but helmet has alternate") REINIT_NET_TIMER(sData.stDisabledViaPIMTimer) ELSE PRINTLN(" timer on, TIMER EXPIRED ", GET_NET_TIMER_STRING(sData.stDisabledViaPIMTimer)) bToggleDeactivateNightvision = TRUE ENDIF ELSE PRINTLN(" timer on, timer pending ", GET_NET_TIMER_STRING(sData.stDisabledViaPIMTimer)) ENDIF ELSE PRINTLN(" 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