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

240 lines
6.5 KiB
XML
Executable File

CONST_INT PRICE_OF_RANGE 14
ENUM RANGE_LOCATION
RANGELOC_PILLBOX_HILL = 0,
RANGELOC_CYPRESS_FLATS
ENDENUM
ENUM RANGE_ROUND_TYPE
RT_INVALID = -1,
RT_PISTOL_CHAL_1, // 0
RT_PISTOL_CHAL_2,
RT_PISTOL_CHAL_3,
RT_SMG_CHAL_1, // 3
RT_SMG_CHAL_2,
RT_SMG_CHAL_3,
RT_SHOTGUN_CHAL_1, // 6
RT_SHOTGUN_CHAL_2,
RT_SHOTGUN_CHAL_3,
RT_AR_CHAL_1, // 9
RT_AR_CHAL_2,
RT_AR_CHAL_3,
RT_LMG_CHAL_1, // 12
RT_LMG_CHAL_2,
RT_LMG_CHAL_3,
RT_MINIGUN_CHAL_1, // 15
RT_MINIGUN_CHAL_2,
RT_MINIGUN_CHAL_3,
RT_RAILGUN_CHAL_1, // 18
RT_RAILGUN_CHAL_2,
RT_RAILGUN_CHAL_3,
RT_RAILGUN_CHAL_4,
RT_MAX_ROUND_TYPES
ENDENUM
// This is used in conjunction with the above to control what's been unlocked and not highlighted.
ENUM RANGE_UNLOCK_CATEGORIES
R_CAT_UNLOCK_HG = 20,
R_CAT_UNLOCK_SMG = 21,
R_CAT_UNLOCK_AR = 22,
R_CAT_UNLOCK_SG = 23,
R_CAT_UNLOCK_LMG = 24,
R_CAT_UNLOCK_HVY = 25,
R_CAT_UNLOCK_RAIL = 26
ENDENUM
ENUM RANGE_WEAPON_TYPE
RANGE_PISTOL = 0,
RANGE_COMBATPISTOL,
RANGE_APPISTOL,
RANGE_DLC_PISTOL50,
RANGE_DLC_SNSPISTOL,
RANGE_MICROSMG = 0,
RANGE_SMG,
RANGE_DLC_ASSAULTSMG,
RANGE_ASSAULTRIFLE = 0,
RANGE_CARBINERIFLE,
RANGE_ADVANCEDRIFLE,
RANGE_DLC_HEAVYRIFLE,
RANGE_DLC_SPECIALCARBINE,
RANGE_PUMPSHOTGUN = 0,
RANGE_SAWNOFFSHOTGUN,
RANGE_ASSAULTSHOTGUN,
RANGE_DLC_BULLPUPSHOTGUN,
RANGE_MINIGUN = 0,
RANGE_MG = 0,
RANGE_COMBATMG,
RANGE_DLC_ASSAULTMG,
//NG Current gen owners only
RANGE_RAILGUN = 0
ENDENUM
ENUM RANGE_ROUND_MEDAL
RRM_NONE,
RRM_BRONZE,
RRM_SILVER,
RRM_GOLD
ENDENUM
STRUCT RangeRoundDataSaved
INT iLastScore // The last attempt score
// INT iHighScore // Highest score
BOOL bUnlocked // Have we unlocked this mode yet
BOOL bPassed // Have we passed this mode yet
RANGE_ROUND_MEDAL eTopMedal // What is our highest medal
RANGE_WEAPON_TYPE eWeaponType // Weapon used
INT iShotsFired // Shots Fired
INT iShotsHit // Shots Hit
FLOAT fAccuracy // Accuracy %
INT iZone1Hit
INT iZone2Hit
INT iZone3Hit
INT iZone4Hit
ENDSTRUCT
ENUM SHOOTRANGE_BOOLS
// These are bits, but we can't include the BIT1, etc header in here.
SRB_PrintedMinScore_ReverseRange = 1,
SRB_ShownFloatingHelp_ShopDiscountBronze = 8,
SRB_ShownFloatingHelp_ShopDiscountSilver = 16,
SRB_ShownFloatingHelp_ShopDiscountGold = 32,
SRB_RangeInSession = 64,
SRB_QuitFromRange = 128,
SRB_HideBetsMsg = 256
ENDENUM
STRUCT ShootRangeDataSaved
INT iCatChalLockStatus // Category and Challenge lock status flags
INT iWeaponLockStatus // Indiv. weapons lock status flags
INT iWeaponUsedStatus // Tracks which indiv. weapons have been used in the range.
RangeRoundDataSaved sRounds[RT_MAX_ROUND_TYPES]
BOOL m_bSeenTutorial // Our first time at the range?
BOOL bClearedAll // Have we cleared all the challenges and awarded a completion percentage
INT iBools
ENDSTRUCT
USING "hud_colours.sch"
STRUCT Range_HUD_Data
STRING sTimerLabel
INT iTimerVal = -1
HUD_COLOURS eTimerColor = HUD_COLOUR_WHITE
STRING sBestScore
INT iBestScore = -1
HUD_COLOURS eBestScoreColor = HUD_COLOUR_WHITE
STRING sTargetsLabel //"TIMER_TAR"
INT iCurTargets = -1
INT iMaxTargets = -1
STRING sCurScoreLabel
INT iCurScore = -1
HUD_COLOURS eCurScoreColor = HUD_COLOUR_WHITE
STRING sGoalScoreLabel
INT iGoalScore = -1
HUD_COLOURS eGoalScoreColor = HUD_COLOUR_WHITE
INT iMultiplier = -1
INT iCurMultiplierBlocks = -1
INT iMaxMultiplierBlocks = -1
HUD_COLOURS eMultiplierColor = HUD_COLOUR_PURPLE
STRING sOpponentScoreLabel
INT iOpponentScore = -1
HUD_COLOURS eOpponentScoreColor = HUD_COLOUR_WHITE
BOOL bDrawPlayerNames = FALSE
ENDSTRUCT
STRUCT SHOOTING_RANGE_LAUNCH_DATA
RANGE_LOCATION eLocation
PED_INDEX pedParticipant1 = NULL
PED_INDEX pedParticipant2 = NULL
PED_INDEX pedParticipant3 = NULL
OBJECT_INDEX objEarmuffs1 = NULL
OBJECT_INDEX objEarmuffs2 = NULL
OBJECT_INDEX objEarmuffs3 = NULL
OBJECT_INDEX objGlasses1 = NULL
OBJECT_INDEX objGlasses2 = NULL
OBJECT_INDEX objGlasses3 = NULL
ENDSTRUCT
SHOOTRANGE_BOOLS RANGE_NOT_SAVED_BITFLAGS
PROC SET_SHOOTING_RANGE_UNSAVED_BITFLAG(SHOOTRANGE_BOOLS eFlag)
CDEBUG2LN(DEBUG_SHOOTRANGE, "SET_SHOOTING_RANGE_UNSAVED_BITFLAG eFlag=", eFlag)
RANGE_NOT_SAVED_BITFLAGS |= eFlag
ENDPROC
PROC CLEAR_SHOOTING_RANGE_UNSAVED_BITFLAG(SHOOTRANGE_BOOLS eFlag)
CDEBUG2LN(DEBUG_SHOOTRANGE, "CLEAR_SHOOTING_RANGE_UNSAVED_BITFLAG eFlag=", eFlag)
RANGE_NOT_SAVED_BITFLAGS -= RANGE_NOT_SAVED_BITFLAGS & eFlag
ENDPROC
FUNC BOOL IS_SHOOTING_RANGE_unSAVED_BITFLAG_SET(SHOOTRANGE_BOOLS eFlag)
RETURN (ENUM_TO_INT(RANGE_NOT_SAVED_BITFLAGS) & ENUM_TO_INT(eFlag)) != 0
ENDFUNC
#IF IS_DEBUG_BUILD
FUNC STRING GET_STRING_FROM_RANGE_ROUND_TYPE( RANGE_ROUND_TYPE eType )
SWITCH eType
CASE RT_INVALID RETURN "RT_INVALID"
CASE RT_PISTOL_CHAL_1 RETURN "RT_PISTOL_CHAL_1"
CASE RT_PISTOL_CHAL_2 RETURN "RT_PISTOL_CHAL_2"
CASE RT_PISTOL_CHAL_3 RETURN "RT_PISTOL_CHAL_3"
CASE RT_SMG_CHAL_1 RETURN "RT_SMG_CHAL_1"
CASE RT_SMG_CHAL_2 RETURN "RT_SMG_CHAL_2"
CASE RT_SMG_CHAL_3 RETURN "RT_SMG_CHAL_3"
CASE RT_SHOTGUN_CHAL_1 RETURN "RT_SHOTGUN_CHAL_1"
CASE RT_SHOTGUN_CHAL_2 RETURN "RT_SHOTGUN_CHAL_2"
CASE RT_SHOTGUN_CHAL_3 RETURN "RT_SHOTGUN_CHAL_3"
CASE RT_AR_CHAL_1 RETURN "RT_AR_CHAL_1"
CASE RT_AR_CHAL_2 RETURN "RT_AR_CHAL_2"
CASE RT_AR_CHAL_3 RETURN "RT_AR_CHAL_3"
CASE RT_LMG_CHAL_1 RETURN "RT_LMG_CHAL_1"
CASE RT_LMG_CHAL_2 RETURN "RT_LMG_CHAL_2"
CASE RT_LMG_CHAL_3 RETURN "RT_LMG_CHAL_3"
CASE RT_MINIGUN_CHAL_1 RETURN "RT_MINIGUN_CHAL_1"
CASE RT_MINIGUN_CHAL_2 RETURN "RT_MINIGUN_CHAL_2"
CASE RT_MINIGUN_CHAL_3 RETURN "RT_MINIGUN_CHAL_3"
CASE RT_RAILGUN_CHAL_1 RETURN "RT_RAILGUN_CHAL_1"
CASE RT_RAILGUN_CHAL_2 RETURN "RT_RAILGUN_CHAL_2"
CASE RT_RAILGUN_CHAL_3 RETURN "RT_RAILGUN_CHAL_3"
CASE RT_RAILGUN_CHAL_4 RETURN "RT_RAILGUN_CHAL_4"
CASE RT_MAX_ROUND_TYPES RETURN "RT_MAX_ROUND_TYPES"
ENDSWITCH
RETURN "unknown RANGE_ROUND_TYPE"
ENDFUNC
FUNC STRING GET_STRING_FROM_RANGE_ROUND_MEDAL( RANGE_ROUND_MEDAL eMedal )
SWITCH eMedal
CASE RRM_NONE RETURN "RRM_NONE"
CASE RRM_BRONZE RETURN "RRM_BRONZE"
CASE RRM_SILVER RETURN "RRM_SILVER"
CASE RRM_GOLD RETURN "RRM_GOLD"
ENDSWITCH
RETURN "unknown RANGE_ROUND_MEDAL"
ENDFUNC
#ENDIF