578 lines
16 KiB
Scheme
Executable File
578 lines
16 KiB
Scheme
Executable File
// Range_Public.sch
|
|
USING "weapon_enums.sch"
|
|
USING "globals.sch"
|
|
|
|
/// PURPOSE: The weapon categories.
|
|
ENUM RANGE_WEAPON_CATEGORY
|
|
WEAPCAT_PISTOL = 0,
|
|
WEAPCAT_SMG,
|
|
WEAPCAT_AR,
|
|
WEAPCAT_SHOTGUN,
|
|
WEAPCAT_LIGHT_MG,
|
|
WEAPCAT_MINIGUN,
|
|
WEAPCAT_RAILGUN,
|
|
NUM_WEAPON_CATS
|
|
ENDENUM
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
FUNC STRING GET_STRING_FROM_RANGE_WEAPON_CATEGORY(RANGE_WEAPON_CATEGORY eCat)
|
|
SWITCH eCat
|
|
CASE WEAPCAT_PISTOL RETURN "WEAPCAT_PISTOL"
|
|
CASE WEAPCAT_SMG RETURN "WEAPCAT_SMG"
|
|
CASE WEAPCAT_AR RETURN "WEAPCAT_AR"
|
|
CASE WEAPCAT_SHOTGUN RETURN "WEAPCAT_SHOTGUN"
|
|
CASE WEAPCAT_LIGHT_MG RETURN "WEAPCAT_LIGHT_MG"
|
|
CASE WEAPCAT_MINIGUN RETURN "WEAPCAT_MINIGUN"
|
|
CASE WEAPCAT_RAILGUN RETURN "WEAPCAT_RAILGUN"
|
|
CASE NUM_WEAPON_CATS RETURN "NUM_WEAPON_CATS"
|
|
ENDSWITCH
|
|
RETURN "unknown RANGE_WEAPON_CATEGORY"
|
|
ENDFUNC
|
|
#ENDIF
|
|
|
|
|
|
|
|
ENUM GRID_INDEX
|
|
INVALID_LOC = -1,
|
|
gridA1 = 0,
|
|
gridA2,
|
|
gridA3,
|
|
gridA4,
|
|
gridA5,
|
|
gridB1,
|
|
gridB2,
|
|
gridB3,
|
|
gridB4,
|
|
gridB5,
|
|
gridC1,
|
|
gridC2,
|
|
gridC3,
|
|
gridC4,
|
|
gridC5,
|
|
gridD1,
|
|
gridD2,
|
|
gridD3,
|
|
gridD4,
|
|
gridD5,
|
|
MAX_GRID_LOCS
|
|
ENDENUM
|
|
|
|
/// PURPOSE:
|
|
/// Returns the challenge name for the currently highlighted challenge.
|
|
FUNC TEXT_LABEL_15 GET_RANGE_MP_WEAPON_SPRITE_NAME(RANGE_WEAPON_CATEGORY eCategory, WEAPON_TYPE eWeapon, TEXT_LABEL_15 & szDirName)
|
|
TEXT_LABEL_15 szName
|
|
|
|
SWITCH (eCategory)
|
|
CASE WEAPCAT_PISTOL
|
|
szDirName = "SRange_Weap"
|
|
szName = "Weap_HG_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SMG
|
|
szDirName = "SRange_Weap2"
|
|
szName = "Weap_SMG_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_AR
|
|
szDirName = "SRange_Weap"
|
|
szName = "Weap_AR_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SHOTGUN
|
|
szDirName = "SRange_Weap2"
|
|
szName = "Weap_SG_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_LIGHT_MG
|
|
szDirName = "SRange_Weap2"
|
|
szName = "Weap_LMG_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_MINIGUN
|
|
szDirName = "SRange_Weap"
|
|
szName = "Weap_HVY_1"
|
|
RETURN szName
|
|
BREAK
|
|
|
|
//NG Current get owners only
|
|
CASE WEAPCAT_RAILGUN
|
|
szDirName = "SRange_Weap"
|
|
szName = "Weap_RG_1"
|
|
RETURN szName
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
SWITCH eWeapon
|
|
CASE WEAPONTYPE_PISTOL
|
|
CASE WEAPONTYPE_MICROSMG
|
|
CASE WEAPONTYPE_ASSAULTRIFLE
|
|
CASE WEAPONTYPE_PUMPSHOTGUN
|
|
CASE WEAPONTYPE_MG
|
|
CASE WEAPONTYPE_MINIGUN
|
|
szName += 1
|
|
BREAK
|
|
CASE WEAPONTYPE_COMBATPISTOL
|
|
CASE WEAPONTYPE_SMG
|
|
CASE WEAPONTYPE_CARBINERIFLE
|
|
CASE WEAPONTYPE_SAWNOFFSHOTGUN
|
|
CASE WEAPONTYPE_COMBATMG
|
|
szName += 2
|
|
BREAK
|
|
CASE WEAPONTYPE_APPISTOL
|
|
CASE WEAPONTYPE_DLC_ASSAULTSMG
|
|
CASE WEAPONTYPE_ADVANCEDRIFLE
|
|
CASE WEAPONTYPE_ASSAULTSHOTGUN
|
|
CASE WEAPONTYPE_DLC_ASSAULTMG
|
|
szName += 3
|
|
BREAK
|
|
CASE WEAPONTYPE_DLC_PISTOL50
|
|
CASE WEAPONTYPE_DLC_HEAVYRIFLE
|
|
CASE WEAPONTYPE_DLC_BULLPUPSHOTGUN
|
|
CASE WEAPONTYPE_DLC_GUSENBERG
|
|
szName += 4
|
|
BREAK
|
|
CASE WEAPONTYPE_DLC_HEAVYPISTOL
|
|
CASE WEAPONTYPE_DLC_BULLPUPRIFLE
|
|
szName += 5
|
|
BREAK
|
|
CASE WEAPONTYPE_DLC_SNSPISTOL
|
|
CASE WEAPONTYPE_DLC_SPECIALCARBINE
|
|
szName += 6
|
|
BREAK
|
|
CASE WEAPONTYPE_DLC_VINTAGEPISTOL
|
|
szName += 7
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN szName
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Returns the challenge name for the currently highlighted challenge.
|
|
FUNC TEXT_LABEL_15 GET_WEAPON_SPRITE_NAME(RANGE_WEAPON_CATEGORY eCategory, RANGE_WEAPON_TYPE eWeapon, TEXT_LABEL_15 & szDirName)
|
|
TEXT_LABEL_15 szName
|
|
|
|
SWITCH (eCategory)
|
|
CASE WEAPCAT_PISTOL
|
|
szDirName = "SRange_Weap"
|
|
szName = "Weap_HG_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SMG
|
|
szDirName = "SRange_Weap2"
|
|
szName = "Weap_SMG_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_AR
|
|
szDirName = "SRange_Weap"
|
|
szName = "Weap_AR_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SHOTGUN
|
|
szDirName = "SRange_Weap2"
|
|
szName = "Weap_SG_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_LIGHT_MG
|
|
szDirName = "SRange_Weap2"
|
|
szName = "Weap_LMG_"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_MINIGUN
|
|
szDirName = "SRange_Weap"
|
|
szName = "Weap_HVY_1"
|
|
RETURN szName
|
|
BREAK
|
|
|
|
//NG Current get owners only
|
|
CASE WEAPCAT_RAILGUN
|
|
szDirName = "SRange_Weap"
|
|
szName = "Weap_RG_1"
|
|
RETURN szName
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
szName += ENUM_TO_INT(eWeapon) + 1
|
|
RETURN szName
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Returns the challenge name for the currently highlighted challenge.
|
|
FUNC TEXT_LABEL_15 GET_CHALLENGE_SPRITE_NAME(RANGE_WEAPON_CATEGORY eCategory, INT iChallenge, TEXT_LABEL_15 & szSpriteFolder)
|
|
TEXT_LABEL_15 szName = "Chal_Blank"
|
|
|
|
// If we haven't selected a challenge, leave us as blank.
|
|
IF (iChallenge <> -1)
|
|
SWITCH (eCategory)
|
|
CASE WEAPCAT_PISTOL
|
|
szSpriteFolder = "SRange_Chal"
|
|
szName = "Chal_HG"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SMG
|
|
szSpriteFolder = "SRange_Chal2"
|
|
szName = "Chal_SMG"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SHOTGUN
|
|
szSpriteFolder = "SRange_Chal2"
|
|
szName = "Chal_SG"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_AR
|
|
szSpriteFolder = "SRange_Chal"
|
|
szName = "Chal_AR"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_LIGHT_MG
|
|
szSpriteFolder = "SRange_Chal2"
|
|
szName = "Chal_LMG"
|
|
BREAK
|
|
|
|
CASE WEAPCAT_MINIGUN
|
|
szSpriteFolder = "SRange_Chal"
|
|
szName = "Chal_HVY"
|
|
BREAK
|
|
|
|
//NG Current gen owners only
|
|
CASE WEAPCAT_RAILGUN
|
|
szSpriteFolder = "SRange_Chal2"
|
|
szName = "Chal_RG"
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
szName += iChallenge + 1
|
|
|
|
ENDIF
|
|
|
|
RETURN szName
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Retreive the category name from the enum.
|
|
FUNC STRING GET_CATEGORY_STRING_INFO(RANGE_WEAPON_CATEGORY eWeaponCategory, BOOL bNeedTHEVersion = FALSE)
|
|
SWITCH (eWeaponCategory)
|
|
CASE WEAPCAT_PISTOL
|
|
IF bNeedTHEVersion
|
|
RETURN "WTT_PIST"
|
|
ELSE
|
|
RETURN "SHR_CAT_HG"
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SMG
|
|
IF bNeedTHEVersion
|
|
RETURN "WTT_SMG_MCR"
|
|
ELSE
|
|
RETURN "SHR_CAT_SMG"
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_AR
|
|
IF bNeedTHEVersion
|
|
RETURN "WTT_RIFLE_ASL"
|
|
ELSE
|
|
RETURN "SHR_CAT_AR"
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SHOTGUN
|
|
IF bNeedTHEVersion
|
|
RETURN "WTT_SG_PMP"
|
|
ELSE
|
|
RETURN "SHR_CAT_SG"
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_LIGHT_MG
|
|
IF bNeedTHEVersion
|
|
RETURN "WTT_MG"
|
|
ELSE
|
|
RETURN "SHR_CAT_LMG"
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_MINIGUN
|
|
IF bNeedTHEVersion
|
|
RETURN "WTT_MINIGUN"
|
|
ELSE
|
|
RETURN "SHR_CAT_HVY"
|
|
ENDIF
|
|
BREAK
|
|
|
|
//NG Current get owners only
|
|
CASE WEAPCAT_RAILGUN
|
|
IF bNeedTHEVersion
|
|
RETURN "WTT_RAILGUN"
|
|
ELSE
|
|
RETURN "SHR_CAT_RAILGUN"
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN ""
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Given the category and the range weapon type, get the game weapon type.
|
|
/// RETURNS:
|
|
/// The WEAPON_TYPE corresponding.
|
|
FUNC WEAPON_TYPE GET_WEAPONTYPE_FROM_RANGE_INFO(RANGE_WEAPON_CATEGORY eWeapCat, RANGE_WEAPON_TYPE eRangeWeapon)
|
|
SWITCH (eWeapCat)
|
|
CASE WEAPCAT_PISTOL
|
|
IF (eRangeWeapon = RANGE_PISTOL)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_PISTOL")
|
|
RETURN WEAPONTYPE_PISTOL
|
|
ELIF (eRangeWeapon = RANGE_DLC_PISTOL50)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_DLC_PISTOL50")
|
|
RETURN WEAPONTYPE_DLC_PISTOL50
|
|
ELIF (eRangeWeapon = RANGE_COMBATPISTOL)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_COMBATPISTOL")
|
|
RETURN WEAPONTYPE_COMBATPISTOL
|
|
ELIF (eRangeWeapon = RANGE_APPISTOL)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_APPISTOL")
|
|
RETURN WEAPONTYPE_APPISTOL
|
|
ELIF (eRangeWeapon = RANGE_DLC_SNSPISTOL)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_APPISTOL")
|
|
RETURN WEAPONTYPE_DLC_SNSPISTOL
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SMG
|
|
IF (eRangeWeapon = RANGE_MICROSMG)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_MICROSMG")
|
|
RETURN WEAPONTYPE_MICROSMG
|
|
ELIF (eRangeWeapon = RANGE_SMG)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_SMG")
|
|
RETURN WEAPONTYPE_SMG
|
|
ELIF (eRangeWeapon = RANGE_DLC_ASSAULTSMG)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_DLC_ASSAULTSMG")
|
|
RETURN WEAPONTYPE_DLC_ASSAULTSMG
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_AR
|
|
IF (eRangeWeapon = RANGE_ASSAULTRIFLE)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_ASSAULTRIFLE")
|
|
RETURN WEAPONTYPE_ASSAULTRIFLE
|
|
ELIF (eRangeWeapon = RANGE_CARBINERIFLE)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_CARBINERIFLE")
|
|
RETURN WEAPONTYPE_CARBINERIFLE
|
|
ELIF (eRangeWeapon = RANGE_DLC_SPECIALCARBINE)
|
|
RETURN WEAPONTYPE_DLC_SPECIALCARBINE
|
|
ELIF (eRangeWeapon = RANGE_DLC_HEAVYRIFLE)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_DLC_HEAVYRIFLE")
|
|
RETURN WEAPONTYPE_DLC_HEAVYRIFLE
|
|
ELIF (eRangeWeapon = RANGE_ADVANCEDRIFLE)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_ADVANCEDRIFLE")
|
|
RETURN WEAPONTYPE_ADVANCEDRIFLE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_SHOTGUN
|
|
IF (eRangeWeapon = RANGE_PUMPSHOTGUN)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_PUMPSHOTGUN")
|
|
RETURN WEAPONTYPE_PUMPSHOTGUN
|
|
ELIF (eRangeWeapon = RANGE_SAWNOFFSHOTGUN)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_SAWNOFFSHOTGUN")
|
|
RETURN WEAPONTYPE_SAWNOFFSHOTGUN
|
|
ELIF (eRangeWeapon = RANGE_DLC_BULLPUPSHOTGUN)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_DLC_BULLPUPSHOTGUN")
|
|
RETURN WEAPONTYPE_DLC_BULLPUPSHOTGUN
|
|
ELIF (eRangeWeapon = RANGE_ASSAULTSHOTGUN)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_ASSAULTSHOTGUN")
|
|
RETURN WEAPONTYPE_ASSAULTSHOTGUN
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_LIGHT_MG
|
|
IF (eRangeWeapon = RANGE_MG)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_MG")
|
|
RETURN WEAPONTYPE_MG
|
|
ELIF (eRangeWeapon = RANGE_COMBATMG)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_COMBATMG")
|
|
RETURN WEAPONTYPE_COMBATMG
|
|
ELIF (eRangeWeapon = RANGE_DLC_ASSAULTSMG)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_DLC_ASSAULTMG")
|
|
RETURN WEAPONTYPE_DLC_ASSAULTMG
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_MINIGUN
|
|
IF (eRangeWeapon = RANGE_MINIGUN)
|
|
// PRINTLN("GET_WEAPONTYPE_FROM_RANGE_INFO returning WEAPONTYPE_MINIGUN")
|
|
RETURN WEAPONTYPE_MINIGUN
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WEAPCAT_RAILGUN
|
|
//NG Current gen owners only
|
|
IF (eRangeWeapon = RANGE_RAILGUN)
|
|
RETURN WEAPONTYPE_DLC_RAILGUN
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN WEAPONTYPE_INVALID
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Returns the highest medal achieved in eRoundType
|
|
/// PARAMS:
|
|
/// eRoundType -
|
|
/// RETURNS:
|
|
/// The highest medal earned in a given round
|
|
FUNC RANGE_ROUND_MEDAL GET_RANGE_CHALLENGE_ROUND_MEDAL(RANGE_ROUND_TYPE eRoundType, enumCharacterList ePlayerChar)
|
|
RETURN (g_savedGlobals.sRangeData[ePlayerChar].sRounds[eRoundType].eTopMedal)
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Returns the highest medal awarded in a weapon unlock category
|
|
/// PARAMS:
|
|
/// eCat -
|
|
/// RETURNS:
|
|
/// Highest medal earned in a shooting range weapon category
|
|
FUNC RANGE_ROUND_MEDAL GET_HIGHEST_MEDAL_IN_RANGE_CHALLENGE_CATEGORY(RANGE_WEAPON_CATEGORY eWeapCat, enumCharacterList ePlayerChar)
|
|
RANGE_ROUND_TYPE eRound1, eRound2, eRound3, eRound4
|
|
RANGE_ROUND_MEDAL eReturnMedal
|
|
|
|
// Determine the challenges we're asking about
|
|
IF eWeapCat = WEAPCAT_PISTOL
|
|
eRound1 = RT_PISTOL_CHAL_1
|
|
eRound2 = RT_PISTOL_CHAL_2
|
|
eRound3 = RT_PISTOL_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_SMG
|
|
eRound1 = RT_SMG_CHAL_1
|
|
eRound2 = RT_SMG_CHAL_2
|
|
eRound3 = RT_SMG_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_AR
|
|
eRound1 = RT_AR_CHAL_1
|
|
eRound2 = RT_AR_CHAL_2
|
|
eRound3 = RT_AR_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_SHOTGUN
|
|
eRound1 = RT_SHOTGUN_CHAL_1
|
|
eRound2 = RT_SHOTGUN_CHAL_2
|
|
eRound3 = RT_SHOTGUN_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_LIGHT_MG
|
|
eRound1 = RT_LMG_CHAL_1
|
|
eRound2 = RT_LMG_CHAL_2
|
|
eRound3 = RT_LMG_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_MINIGUN
|
|
eRound1 = RT_MINIGUN_CHAL_1
|
|
eRound2 = RT_MINIGUN_CHAL_2
|
|
eRound3 = RT_MINIGUN_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
//NG Current gen owners only
|
|
ELIF eWeapCat = WEAPCAT_RAILGUN
|
|
eRound1 = RT_RAILGUN_CHAL_1
|
|
eRound2 = RT_RAILGUN_CHAL_2
|
|
eRound3 = RT_RAILGUN_CHAL_3
|
|
eRound4 = RT_RAILGUN_CHAL_4
|
|
ELSE
|
|
PRINTLN("Invalid RANGE_UNLOCK_CATEGORIES eWeapCat sent in")
|
|
RETURN RRM_NONE
|
|
ENDIF
|
|
|
|
// Set our returnMedal to the medal in round 1
|
|
eReturnMedal = GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound1, ePlayerChar)
|
|
// if the round 2 medal is greater, return that one
|
|
IF GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound2, ePlayerChar) > eReturnMedal
|
|
eReturnMedal = GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound2, ePlayerChar)
|
|
ENDIF
|
|
// if the round 3 medal is greater, return that one
|
|
IF GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound3, ePlayerChar) > eReturnMedal
|
|
eReturnMedal = GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound3, ePlayerChar)
|
|
ENDIF
|
|
IF eRound4 <> RT_INVALID
|
|
// if the round 4 medal is greater, return that one
|
|
IF GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound4, ePlayerChar) > eReturnMedal
|
|
eReturnMedal = GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound4, ePlayerChar)
|
|
ENDIF
|
|
ENDIF
|
|
// Return that medal!
|
|
RETURN eReturnMedal
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Returns the highest medal awarded in a weapon unlock category
|
|
/// PARAMS:
|
|
/// eCat -
|
|
/// RETURNS:
|
|
/// Highest medal earned in a shooting range weapon category
|
|
FUNC RANGE_ROUND_MEDAL GET_LOWEST_MEDAL_IN_RANGE_CHALLENGE_CATEGORY(RANGE_WEAPON_CATEGORY eWeapCat, enumCharacterList ePlayerChar)
|
|
RANGE_ROUND_TYPE eRound1, eRound2, eRound3, eRound4
|
|
RANGE_ROUND_MEDAL eReturnMedal
|
|
|
|
// Determine the challenges we're asking about
|
|
IF eWeapCat = WEAPCAT_PISTOL
|
|
eRound1 = RT_PISTOL_CHAL_1
|
|
eRound2 = RT_PISTOL_CHAL_2
|
|
eRound3 = RT_PISTOL_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_SMG
|
|
eRound1 = RT_SMG_CHAL_1
|
|
eRound2 = RT_SMG_CHAL_2
|
|
eRound3 = RT_SMG_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_AR
|
|
eRound1 = RT_AR_CHAL_1
|
|
eRound2 = RT_AR_CHAL_2
|
|
eRound3 = RT_AR_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_SHOTGUN
|
|
eRound1 = RT_SHOTGUN_CHAL_1
|
|
eRound2 = RT_SHOTGUN_CHAL_2
|
|
eRound3 = RT_SHOTGUN_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_LIGHT_MG
|
|
eRound1 = RT_LMG_CHAL_1
|
|
eRound2 = RT_LMG_CHAL_2
|
|
eRound3 = RT_LMG_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
ELIF eWeapCat = WEAPCAT_MINIGUN
|
|
eRound1 = RT_MINIGUN_CHAL_1
|
|
eRound2 = RT_MINIGUN_CHAL_2
|
|
eRound3 = RT_MINIGUN_CHAL_3
|
|
eRound4 = RT_INVALID
|
|
//NG Current gen owners only
|
|
ELIF eWeapCat = WEAPCAT_RAILGUN
|
|
eRound1 = RT_RAILGUN_CHAL_1
|
|
eRound2 = RT_RAILGUN_CHAL_2
|
|
eRound3 = RT_RAILGUN_CHAL_3
|
|
eRound4 = RT_RAILGUN_CHAL_4
|
|
ELSE
|
|
PRINTLN("Invalid RANGE_UNLOCK_CATEGORIES eWeapCat sent in")
|
|
RETURN RRM_NONE
|
|
ENDIF
|
|
|
|
// Set our returnMedal to the medal in round 1
|
|
eReturnMedal = GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound1, ePlayerChar)
|
|
// if the round 2 medal is greater, return that one
|
|
IF GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound2, ePlayerChar) < eReturnMedal
|
|
eReturnMedal = GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound2, ePlayerChar)
|
|
ENDIF
|
|
// if the round 3 medal is greater, return that one
|
|
IF GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound3, ePlayerChar) < eReturnMedal
|
|
eReturnMedal = GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound3, ePlayerChar)
|
|
ENDIF
|
|
IF eRound4 != RT_INVALID
|
|
// if the round 4 medal is greater, return that one
|
|
IF GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound4, ePlayerChar) < eReturnMedal
|
|
eReturnMedal = GET_RANGE_CHALLENGE_ROUND_MEDAL(eRound4, ePlayerChar)
|
|
ENDIF
|
|
ENDIF
|
|
// Return that medal!
|
|
RETURN eReturnMedal
|
|
ENDFUNC
|
|
|