import { getCursorPos, setInterval, clearInterval, logWarning, emit, logError, clearTimeout, setTimeout, everyTick, getGxtText, showCursor } from 'alt-client'; import game__default, { requestScaleformMovie, hasScaleformMovieLoaded, beginScaleformMovieMethod, scaleformMovieMethodAddParamBool, scaleformMovieMethodAddParamPlayerNameString, scaleformMovieMethodAddParamFloat, scaleformMovieMethodAddParamInt, endScaleformMovieMethod, endScaleformMovieMethodReturnValue, drawScaleformMovieFullscreen, setScaleformMovieAsNoLongerNeeded } from 'natives'; var BadgeStyle; (function (BadgeStyle) { BadgeStyle[BadgeStyle["None"] = 0] = "None"; BadgeStyle[BadgeStyle["BronzeMedal"] = 1] = "BronzeMedal"; BadgeStyle[BadgeStyle["GoldMedal"] = 2] = "GoldMedal"; BadgeStyle[BadgeStyle["SilverMedal"] = 3] = "SilverMedal"; BadgeStyle[BadgeStyle["Alert"] = 4] = "Alert"; BadgeStyle[BadgeStyle["Crown"] = 5] = "Crown"; BadgeStyle[BadgeStyle["Ammo"] = 6] = "Ammo"; BadgeStyle[BadgeStyle["Armour"] = 7] = "Armour"; BadgeStyle[BadgeStyle["Barber"] = 8] = "Barber"; BadgeStyle[BadgeStyle["Clothes"] = 9] = "Clothes"; BadgeStyle[BadgeStyle["Franklin"] = 10] = "Franklin"; BadgeStyle[BadgeStyle["Bike"] = 11] = "Bike"; BadgeStyle[BadgeStyle["Car"] = 12] = "Car"; BadgeStyle[BadgeStyle["Gun"] = 13] = "Gun"; BadgeStyle[BadgeStyle["Heart"] = 14] = "Heart"; BadgeStyle[BadgeStyle["Makeup"] = 15] = "Makeup"; BadgeStyle[BadgeStyle["Mask"] = 16] = "Mask"; BadgeStyle[BadgeStyle["Michael"] = 17] = "Michael"; BadgeStyle[BadgeStyle["Star"] = 18] = "Star"; BadgeStyle[BadgeStyle["Tattoo"] = 19] = "Tattoo"; BadgeStyle[BadgeStyle["Trevor"] = 20] = "Trevor"; BadgeStyle[BadgeStyle["Lock"] = 21] = "Lock"; BadgeStyle[BadgeStyle["Tick"] = 22] = "Tick"; BadgeStyle[BadgeStyle["Sale"] = 23] = "Sale"; BadgeStyle[BadgeStyle["ArrowLeft"] = 24] = "ArrowLeft"; BadgeStyle[BadgeStyle["ArrowRight"] = 25] = "ArrowRight"; BadgeStyle[BadgeStyle["Audio1"] = 26] = "Audio1"; BadgeStyle[BadgeStyle["Audio2"] = 27] = "Audio2"; BadgeStyle[BadgeStyle["Audio3"] = 28] = "Audio3"; BadgeStyle[BadgeStyle["AudioInactive"] = 29] = "AudioInactive"; BadgeStyle[BadgeStyle["AudioMute"] = 30] = "AudioMute"; })(BadgeStyle || (BadgeStyle = {})); var BadgeStyle$1 = BadgeStyle; var Font; (function (Font) { Font[Font["ChaletLondon"] = 0] = "ChaletLondon"; Font[Font["HouseScript"] = 1] = "HouseScript"; Font[Font["Monospace"] = 2] = "Monospace"; Font[Font["CharletComprimeColonge"] = 4] = "CharletComprimeColonge"; Font[Font["Pricedown"] = 7] = "Pricedown"; })(Font || (Font = {})); var Font$1 = Font; var Alignment; (function (Alignment) { Alignment[Alignment["Left"] = 0] = "Left"; Alignment[Alignment["Centered"] = 1] = "Centered"; Alignment[Alignment["Right"] = 2] = "Right"; })(Alignment || (Alignment = {})); var Alignment$1 = Alignment; var Control; (function (Control) { Control[Control["NextCamera"] = 0] = "NextCamera"; Control[Control["LookLeftRight"] = 1] = "LookLeftRight"; Control[Control["LookUpDown"] = 2] = "LookUpDown"; Control[Control["LookUpOnly"] = 3] = "LookUpOnly"; Control[Control["LookDownOnly"] = 4] = "LookDownOnly"; Control[Control["LookLeftOnly"] = 5] = "LookLeftOnly"; Control[Control["LookRightOnly"] = 6] = "LookRightOnly"; Control[Control["CinematicSlowMo"] = 7] = "CinematicSlowMo"; Control[Control["FlyUpDown"] = 8] = "FlyUpDown"; Control[Control["FlyLeftRight"] = 9] = "FlyLeftRight"; Control[Control["ScriptedFlyZUp"] = 10] = "ScriptedFlyZUp"; Control[Control["ScriptedFlyZDown"] = 11] = "ScriptedFlyZDown"; Control[Control["WeaponWheelUpDown"] = 12] = "WeaponWheelUpDown"; Control[Control["WeaponWheelLeftRight"] = 13] = "WeaponWheelLeftRight"; Control[Control["WeaponWheelNext"] = 14] = "WeaponWheelNext"; Control[Control["WeaponWheelPrev"] = 15] = "WeaponWheelPrev"; Control[Control["SelectNextWeapon"] = 16] = "SelectNextWeapon"; Control[Control["SelectPrevWeapon"] = 17] = "SelectPrevWeapon"; Control[Control["SkipCutscene"] = 18] = "SkipCutscene"; Control[Control["CharacterWheel"] = 19] = "CharacterWheel"; Control[Control["MultiplayerInfo"] = 20] = "MultiplayerInfo"; Control[Control["Sprint"] = 21] = "Sprint"; Control[Control["Jump"] = 22] = "Jump"; Control[Control["Enter"] = 23] = "Enter"; Control[Control["Attack"] = 24] = "Attack"; Control[Control["Aim"] = 25] = "Aim"; Control[Control["LookBehind"] = 26] = "LookBehind"; Control[Control["Phone"] = 27] = "Phone"; Control[Control["SpecialAbility"] = 28] = "SpecialAbility"; Control[Control["SpecialAbilitySecondary"] = 29] = "SpecialAbilitySecondary"; Control[Control["MoveLeftRight"] = 30] = "MoveLeftRight"; Control[Control["MoveUpDown"] = 31] = "MoveUpDown"; Control[Control["MoveUpOnly"] = 32] = "MoveUpOnly"; Control[Control["MoveDownOnly"] = 33] = "MoveDownOnly"; Control[Control["MoveLeftOnly"] = 34] = "MoveLeftOnly"; Control[Control["MoveRightOnly"] = 35] = "MoveRightOnly"; Control[Control["Duck"] = 36] = "Duck"; Control[Control["SelectWeapon"] = 37] = "SelectWeapon"; Control[Control["Pickup"] = 38] = "Pickup"; Control[Control["SniperZoom"] = 39] = "SniperZoom"; Control[Control["SniperZoomInOnly"] = 40] = "SniperZoomInOnly"; Control[Control["SniperZoomOutOnly"] = 41] = "SniperZoomOutOnly"; Control[Control["SniperZoomInSecondary"] = 42] = "SniperZoomInSecondary"; Control[Control["SniperZoomOutSecondary"] = 43] = "SniperZoomOutSecondary"; Control[Control["Cover"] = 44] = "Cover"; Control[Control["Reload"] = 45] = "Reload"; Control[Control["Talk"] = 46] = "Talk"; Control[Control["Detonate"] = 47] = "Detonate"; Control[Control["HUDSpecial"] = 48] = "HUDSpecial"; Control[Control["Arrest"] = 49] = "Arrest"; Control[Control["AccurateAim"] = 50] = "AccurateAim"; Control[Control["Context"] = 51] = "Context"; Control[Control["ContextSecondary"] = 52] = "ContextSecondary"; Control[Control["WeaponSpecial"] = 53] = "WeaponSpecial"; Control[Control["WeaponSpecial2"] = 54] = "WeaponSpecial2"; Control[Control["Dive"] = 55] = "Dive"; Control[Control["DropWeapon"] = 56] = "DropWeapon"; Control[Control["DropAmmo"] = 57] = "DropAmmo"; Control[Control["ThrowGrenade"] = 58] = "ThrowGrenade"; Control[Control["VehicleMoveLeftRight"] = 59] = "VehicleMoveLeftRight"; Control[Control["VehicleMoveUpDown"] = 60] = "VehicleMoveUpDown"; Control[Control["VehicleMoveUpOnly"] = 61] = "VehicleMoveUpOnly"; Control[Control["VehicleMoveDownOnly"] = 62] = "VehicleMoveDownOnly"; Control[Control["VehicleMoveLeftOnly"] = 63] = "VehicleMoveLeftOnly"; Control[Control["VehicleMoveRightOnly"] = 64] = "VehicleMoveRightOnly"; Control[Control["VehicleSpecial"] = 65] = "VehicleSpecial"; Control[Control["VehicleGunLeftRight"] = 66] = "VehicleGunLeftRight"; Control[Control["VehicleGunUpDown"] = 67] = "VehicleGunUpDown"; Control[Control["VehicleAim"] = 68] = "VehicleAim"; Control[Control["VehicleAttack"] = 69] = "VehicleAttack"; Control[Control["VehicleAttack2"] = 70] = "VehicleAttack2"; Control[Control["VehicleAccelerate"] = 71] = "VehicleAccelerate"; Control[Control["VehicleBrake"] = 72] = "VehicleBrake"; Control[Control["VehicleDuck"] = 73] = "VehicleDuck"; Control[Control["VehicleHeadlight"] = 74] = "VehicleHeadlight"; Control[Control["VehicleExit"] = 75] = "VehicleExit"; Control[Control["VehicleHandbrake"] = 76] = "VehicleHandbrake"; Control[Control["VehicleHotwireLeft"] = 77] = "VehicleHotwireLeft"; Control[Control["VehicleHotwireRight"] = 78] = "VehicleHotwireRight"; Control[Control["VehicleLookBehind"] = 79] = "VehicleLookBehind"; Control[Control["VehicleCinCam"] = 80] = "VehicleCinCam"; Control[Control["VehicleNextRadio"] = 81] = "VehicleNextRadio"; Control[Control["VehiclePrevRadio"] = 82] = "VehiclePrevRadio"; Control[Control["VehicleNextRadioTrack"] = 83] = "VehicleNextRadioTrack"; Control[Control["VehiclePrevRadioTrack"] = 84] = "VehiclePrevRadioTrack"; Control[Control["VehicleRadioWheel"] = 85] = "VehicleRadioWheel"; Control[Control["VehicleHorn"] = 86] = "VehicleHorn"; Control[Control["VehicleFlyThrottleUp"] = 87] = "VehicleFlyThrottleUp"; Control[Control["VehicleFlyThrottleDown"] = 88] = "VehicleFlyThrottleDown"; Control[Control["VehicleFlyYawLeft"] = 89] = "VehicleFlyYawLeft"; Control[Control["VehicleFlyYawRight"] = 90] = "VehicleFlyYawRight"; Control[Control["VehiclePassengerAim"] = 91] = "VehiclePassengerAim"; Control[Control["VehiclePassengerAttack"] = 92] = "VehiclePassengerAttack"; Control[Control["VehicleSpecialAbilityFranklin"] = 93] = "VehicleSpecialAbilityFranklin"; Control[Control["VehicleStuntUpDown"] = 94] = "VehicleStuntUpDown"; Control[Control["VehicleCinematicUpDown"] = 95] = "VehicleCinematicUpDown"; Control[Control["VehicleCinematicUpOnly"] = 96] = "VehicleCinematicUpOnly"; Control[Control["VehicleCinematicDownOnly"] = 97] = "VehicleCinematicDownOnly"; Control[Control["VehicleCinematicLeftRight"] = 98] = "VehicleCinematicLeftRight"; Control[Control["VehicleSelectNextWeapon"] = 99] = "VehicleSelectNextWeapon"; Control[Control["VehicleSelectPrevWeapon"] = 100] = "VehicleSelectPrevWeapon"; Control[Control["VehicleRoof"] = 101] = "VehicleRoof"; Control[Control["VehicleJump"] = 102] = "VehicleJump"; Control[Control["VehicleGrapplingHook"] = 103] = "VehicleGrapplingHook"; Control[Control["VehicleShuffle"] = 104] = "VehicleShuffle"; Control[Control["VehicleDropProjectile"] = 105] = "VehicleDropProjectile"; Control[Control["VehicleMouseControlOverride"] = 106] = "VehicleMouseControlOverride"; Control[Control["VehicleFlyRollLeftRight"] = 107] = "VehicleFlyRollLeftRight"; Control[Control["VehicleFlyRollLeftOnly"] = 108] = "VehicleFlyRollLeftOnly"; Control[Control["VehicleFlyRollRightOnly"] = 109] = "VehicleFlyRollRightOnly"; Control[Control["VehicleFlyPitchUpDown"] = 110] = "VehicleFlyPitchUpDown"; Control[Control["VehicleFlyPitchUpOnly"] = 111] = "VehicleFlyPitchUpOnly"; Control[Control["VehicleFlyPitchDownOnly"] = 112] = "VehicleFlyPitchDownOnly"; Control[Control["VehicleFlyUnderCarriage"] = 113] = "VehicleFlyUnderCarriage"; Control[Control["VehicleFlyAttack"] = 114] = "VehicleFlyAttack"; Control[Control["VehicleFlySelectNextWeapon"] = 115] = "VehicleFlySelectNextWeapon"; Control[Control["VehicleFlySelectPrevWeapon"] = 116] = "VehicleFlySelectPrevWeapon"; Control[Control["VehicleFlySelectTargetLeft"] = 117] = "VehicleFlySelectTargetLeft"; Control[Control["VehicleFlySelectTargetRight"] = 118] = "VehicleFlySelectTargetRight"; Control[Control["VehicleFlyVerticalFlightMode"] = 119] = "VehicleFlyVerticalFlightMode"; Control[Control["VehicleFlyDuck"] = 120] = "VehicleFlyDuck"; Control[Control["VehicleFlyAttackCamera"] = 121] = "VehicleFlyAttackCamera"; Control[Control["VehicleFlyMouseControlOverride"] = 122] = "VehicleFlyMouseControlOverride"; Control[Control["VehicleSubTurnLeftRight"] = 123] = "VehicleSubTurnLeftRight"; Control[Control["VehicleSubTurnLeftOnly"] = 124] = "VehicleSubTurnLeftOnly"; Control[Control["VehicleSubTurnRightOnly"] = 125] = "VehicleSubTurnRightOnly"; Control[Control["VehicleSubPitchUpDown"] = 126] = "VehicleSubPitchUpDown"; Control[Control["VehicleSubPitchUpOnly"] = 127] = "VehicleSubPitchUpOnly"; Control[Control["VehicleSubPitchDownOnly"] = 128] = "VehicleSubPitchDownOnly"; Control[Control["VehicleSubThrottleUp"] = 129] = "VehicleSubThrottleUp"; Control[Control["VehicleSubThrottleDown"] = 130] = "VehicleSubThrottleDown"; Control[Control["VehicleSubAscend"] = 131] = "VehicleSubAscend"; Control[Control["VehicleSubDescend"] = 132] = "VehicleSubDescend"; Control[Control["VehicleSubTurnHardLeft"] = 133] = "VehicleSubTurnHardLeft"; Control[Control["VehicleSubTurnHardRight"] = 134] = "VehicleSubTurnHardRight"; Control[Control["VehicleSubMouseControlOverride"] = 135] = "VehicleSubMouseControlOverride"; Control[Control["VehiclePushbikePedal"] = 136] = "VehiclePushbikePedal"; Control[Control["VehiclePushbikeSprint"] = 137] = "VehiclePushbikeSprint"; Control[Control["VehiclePushbikeFrontBrake"] = 138] = "VehiclePushbikeFrontBrake"; Control[Control["VehiclePushbikeRearBrake"] = 139] = "VehiclePushbikeRearBrake"; Control[Control["MeleeAttackLight"] = 140] = "MeleeAttackLight"; Control[Control["MeleeAttackHeavy"] = 141] = "MeleeAttackHeavy"; Control[Control["MeleeAttackAlternate"] = 142] = "MeleeAttackAlternate"; Control[Control["MeleeBlock"] = 143] = "MeleeBlock"; Control[Control["ParachuteDeploy"] = 144] = "ParachuteDeploy"; Control[Control["ParachuteDetach"] = 145] = "ParachuteDetach"; Control[Control["ParachuteTurnLeftRight"] = 146] = "ParachuteTurnLeftRight"; Control[Control["ParachuteTurnLeftOnly"] = 147] = "ParachuteTurnLeftOnly"; Control[Control["ParachuteTurnRightOnly"] = 148] = "ParachuteTurnRightOnly"; Control[Control["ParachutePitchUpDown"] = 149] = "ParachutePitchUpDown"; Control[Control["ParachutePitchUpOnly"] = 150] = "ParachutePitchUpOnly"; Control[Control["ParachutePitchDownOnly"] = 151] = "ParachutePitchDownOnly"; Control[Control["ParachuteBrakeLeft"] = 152] = "ParachuteBrakeLeft"; Control[Control["ParachuteBrakeRight"] = 153] = "ParachuteBrakeRight"; Control[Control["ParachuteSmoke"] = 154] = "ParachuteSmoke"; Control[Control["ParachutePrecisionLanding"] = 155] = "ParachutePrecisionLanding"; Control[Control["Map"] = 156] = "Map"; Control[Control["SelectWeaponUnarmed"] = 157] = "SelectWeaponUnarmed"; Control[Control["SelectWeaponMelee"] = 158] = "SelectWeaponMelee"; Control[Control["SelectWeaponHandgun"] = 159] = "SelectWeaponHandgun"; Control[Control["SelectWeaponShotgun"] = 160] = "SelectWeaponShotgun"; Control[Control["SelectWeaponSmg"] = 161] = "SelectWeaponSmg"; Control[Control["SelectWeaponAutoRifle"] = 162] = "SelectWeaponAutoRifle"; Control[Control["SelectWeaponSniper"] = 163] = "SelectWeaponSniper"; Control[Control["SelectWeaponHeavy"] = 164] = "SelectWeaponHeavy"; Control[Control["SelectWeaponSpecial"] = 165] = "SelectWeaponSpecial"; Control[Control["SelectCharacterMichael"] = 166] = "SelectCharacterMichael"; Control[Control["SelectCharacterFranklin"] = 167] = "SelectCharacterFranklin"; Control[Control["SelectCharacterTrevor"] = 168] = "SelectCharacterTrevor"; Control[Control["SelectCharacterMultiplayer"] = 169] = "SelectCharacterMultiplayer"; Control[Control["SaveReplayClip"] = 170] = "SaveReplayClip"; Control[Control["SpecialAbilityPC"] = 171] = "SpecialAbilityPC"; Control[Control["PhoneUp"] = 172] = "PhoneUp"; Control[Control["PhoneDown"] = 173] = "PhoneDown"; Control[Control["PhoneLeft"] = 174] = "PhoneLeft"; Control[Control["PhoneRight"] = 175] = "PhoneRight"; Control[Control["PhoneSelect"] = 176] = "PhoneSelect"; Control[Control["PhoneCancel"] = 177] = "PhoneCancel"; Control[Control["PhoneOption"] = 178] = "PhoneOption"; Control[Control["PhoneExtraOption"] = 179] = "PhoneExtraOption"; Control[Control["PhoneScrollForward"] = 180] = "PhoneScrollForward"; Control[Control["PhoneScrollBackward"] = 181] = "PhoneScrollBackward"; Control[Control["PhoneCameraFocusLock"] = 182] = "PhoneCameraFocusLock"; Control[Control["PhoneCameraGrid"] = 183] = "PhoneCameraGrid"; Control[Control["PhoneCameraSelfie"] = 184] = "PhoneCameraSelfie"; Control[Control["PhoneCameraDOF"] = 185] = "PhoneCameraDOF"; Control[Control["PhoneCameraExpression"] = 186] = "PhoneCameraExpression"; Control[Control["FrontendDown"] = 187] = "FrontendDown"; Control[Control["FrontendUp"] = 188] = "FrontendUp"; Control[Control["FrontendLeft"] = 189] = "FrontendLeft"; Control[Control["FrontendRight"] = 190] = "FrontendRight"; Control[Control["FrontendRdown"] = 191] = "FrontendRdown"; Control[Control["FrontendRup"] = 192] = "FrontendRup"; Control[Control["FrontendRleft"] = 193] = "FrontendRleft"; Control[Control["FrontendRright"] = 194] = "FrontendRright"; Control[Control["FrontendAxisX"] = 195] = "FrontendAxisX"; Control[Control["FrontendAxisY"] = 196] = "FrontendAxisY"; Control[Control["FrontendRightAxisX"] = 197] = "FrontendRightAxisX"; Control[Control["FrontendRightAxisY"] = 198] = "FrontendRightAxisY"; Control[Control["FrontendPause"] = 199] = "FrontendPause"; Control[Control["FrontendPauseAlternate"] = 200] = "FrontendPauseAlternate"; Control[Control["FrontendAccept"] = 201] = "FrontendAccept"; Control[Control["FrontendCancel"] = 202] = "FrontendCancel"; Control[Control["FrontendX"] = 203] = "FrontendX"; Control[Control["FrontendY"] = 204] = "FrontendY"; Control[Control["FrontendLb"] = 205] = "FrontendLb"; Control[Control["FrontendRb"] = 206] = "FrontendRb"; Control[Control["FrontendLt"] = 207] = "FrontendLt"; Control[Control["FrontendRt"] = 208] = "FrontendRt"; Control[Control["FrontendLs"] = 209] = "FrontendLs"; Control[Control["FrontendRs"] = 210] = "FrontendRs"; Control[Control["FrontendLeaderboard"] = 211] = "FrontendLeaderboard"; Control[Control["FrontendSocialClub"] = 212] = "FrontendSocialClub"; Control[Control["FrontendSocialClubSecondary"] = 213] = "FrontendSocialClubSecondary"; Control[Control["FrontendDelete"] = 214] = "FrontendDelete"; Control[Control["FrontendEndscreenAccept"] = 215] = "FrontendEndscreenAccept"; Control[Control["FrontendEndscreenExpand"] = 216] = "FrontendEndscreenExpand"; Control[Control["FrontendSelect"] = 217] = "FrontendSelect"; Control[Control["ScriptLeftAxisX"] = 218] = "ScriptLeftAxisX"; Control[Control["ScriptLeftAxisY"] = 219] = "ScriptLeftAxisY"; Control[Control["ScriptRightAxisX"] = 220] = "ScriptRightAxisX"; Control[Control["ScriptRightAxisY"] = 221] = "ScriptRightAxisY"; Control[Control["ScriptRUp"] = 222] = "ScriptRUp"; Control[Control["ScriptRDown"] = 223] = "ScriptRDown"; Control[Control["ScriptRLeft"] = 224] = "ScriptRLeft"; Control[Control["ScriptRRight"] = 225] = "ScriptRRight"; Control[Control["ScriptLB"] = 226] = "ScriptLB"; Control[Control["ScriptRB"] = 227] = "ScriptRB"; Control[Control["ScriptLT"] = 228] = "ScriptLT"; Control[Control["ScriptRT"] = 229] = "ScriptRT"; Control[Control["ScriptLS"] = 230] = "ScriptLS"; Control[Control["ScriptRS"] = 231] = "ScriptRS"; Control[Control["ScriptPadUp"] = 232] = "ScriptPadUp"; Control[Control["ScriptPadDown"] = 233] = "ScriptPadDown"; Control[Control["ScriptPadLeft"] = 234] = "ScriptPadLeft"; Control[Control["ScriptPadRight"] = 235] = "ScriptPadRight"; Control[Control["ScriptSelect"] = 236] = "ScriptSelect"; Control[Control["CursorAccept"] = 237] = "CursorAccept"; Control[Control["CursorCancel"] = 238] = "CursorCancel"; Control[Control["CursorX"] = 239] = "CursorX"; Control[Control["CursorY"] = 240] = "CursorY"; Control[Control["CursorScrollUp"] = 241] = "CursorScrollUp"; Control[Control["CursorScrollDown"] = 242] = "CursorScrollDown"; Control[Control["EnterCheatCode"] = 243] = "EnterCheatCode"; Control[Control["InteractionMenu"] = 244] = "InteractionMenu"; Control[Control["MpTextChatAll"] = 245] = "MpTextChatAll"; Control[Control["MpTextChatTeam"] = 246] = "MpTextChatTeam"; Control[Control["MpTextChatFriends"] = 247] = "MpTextChatFriends"; Control[Control["MpTextChatCrew"] = 248] = "MpTextChatCrew"; Control[Control["PushToTalk"] = 249] = "PushToTalk"; Control[Control["CreatorLS"] = 250] = "CreatorLS"; Control[Control["CreatorRS"] = 251] = "CreatorRS"; Control[Control["CreatorLT"] = 252] = "CreatorLT"; Control[Control["CreatorRT"] = 253] = "CreatorRT"; Control[Control["CreatorMenuToggle"] = 254] = "CreatorMenuToggle"; Control[Control["CreatorAccept"] = 255] = "CreatorAccept"; Control[Control["CreatorDelete"] = 256] = "CreatorDelete"; Control[Control["Attack2"] = 257] = "Attack2"; Control[Control["RappelJump"] = 258] = "RappelJump"; Control[Control["RappelLongJump"] = 259] = "RappelLongJump"; Control[Control["RappelSmashWindow"] = 260] = "RappelSmashWindow"; Control[Control["PrevWeapon"] = 261] = "PrevWeapon"; Control[Control["NextWeapon"] = 262] = "NextWeapon"; Control[Control["MeleeAttack1"] = 263] = "MeleeAttack1"; Control[Control["MeleeAttack2"] = 264] = "MeleeAttack2"; Control[Control["Whistle"] = 265] = "Whistle"; Control[Control["MoveLeft"] = 266] = "MoveLeft"; Control[Control["MoveRight"] = 267] = "MoveRight"; Control[Control["MoveUp"] = 268] = "MoveUp"; Control[Control["MoveDown"] = 269] = "MoveDown"; Control[Control["LookLeft"] = 270] = "LookLeft"; Control[Control["LookRight"] = 271] = "LookRight"; Control[Control["LookUp"] = 272] = "LookUp"; Control[Control["LookDown"] = 273] = "LookDown"; Control[Control["SniperZoomIn"] = 274] = "SniperZoomIn"; Control[Control["SniperZoomOut"] = 275] = "SniperZoomOut"; Control[Control["SniperZoomInAlternate"] = 276] = "SniperZoomInAlternate"; Control[Control["SniperZoomOutAlternate"] = 277] = "SniperZoomOutAlternate"; Control[Control["VehicleMoveLeft"] = 278] = "VehicleMoveLeft"; Control[Control["VehicleMoveRight"] = 279] = "VehicleMoveRight"; Control[Control["VehicleMoveUp"] = 280] = "VehicleMoveUp"; Control[Control["VehicleMoveDown"] = 281] = "VehicleMoveDown"; Control[Control["VehicleGunLeft"] = 282] = "VehicleGunLeft"; Control[Control["VehicleGunRight"] = 283] = "VehicleGunRight"; Control[Control["VehicleGunUp"] = 284] = "VehicleGunUp"; Control[Control["VehicleGunDown"] = 285] = "VehicleGunDown"; Control[Control["VehicleLookLeft"] = 286] = "VehicleLookLeft"; Control[Control["VehicleLookRight"] = 287] = "VehicleLookRight"; Control[Control["ReplayStartStopRecording"] = 288] = "ReplayStartStopRecording"; Control[Control["ReplayStartStopRecordingSecondary"] = 289] = "ReplayStartStopRecordingSecondary"; Control[Control["ScaledLookLeftRight"] = 290] = "ScaledLookLeftRight"; Control[Control["ScaledLookUpDown"] = 291] = "ScaledLookUpDown"; Control[Control["ScaledLookUpOnly"] = 292] = "ScaledLookUpOnly"; Control[Control["ScaledLookDownOnly"] = 293] = "ScaledLookDownOnly"; Control[Control["ScaledLookLeftOnly"] = 294] = "ScaledLookLeftOnly"; Control[Control["ScaledLookRightOnly"] = 295] = "ScaledLookRightOnly"; Control[Control["ReplayMarkerDelete"] = 296] = "ReplayMarkerDelete"; Control[Control["ReplayClipDelete"] = 297] = "ReplayClipDelete"; Control[Control["ReplayPause"] = 298] = "ReplayPause"; Control[Control["ReplayRewind"] = 299] = "ReplayRewind"; Control[Control["ReplayFfwd"] = 300] = "ReplayFfwd"; Control[Control["ReplayNewmarker"] = 301] = "ReplayNewmarker"; Control[Control["ReplayRecord"] = 302] = "ReplayRecord"; Control[Control["ReplayScreenshot"] = 303] = "ReplayScreenshot"; Control[Control["ReplayHidehud"] = 304] = "ReplayHidehud"; Control[Control["ReplayStartpoint"] = 305] = "ReplayStartpoint"; Control[Control["ReplayEndpoint"] = 306] = "ReplayEndpoint"; Control[Control["ReplayAdvance"] = 307] = "ReplayAdvance"; Control[Control["ReplayBack"] = 308] = "ReplayBack"; Control[Control["ReplayTools"] = 309] = "ReplayTools"; Control[Control["ReplayRestart"] = 310] = "ReplayRestart"; Control[Control["ReplayShowhotkey"] = 311] = "ReplayShowhotkey"; Control[Control["ReplayCycleMarkerLeft"] = 312] = "ReplayCycleMarkerLeft"; Control[Control["ReplayCycleMarkerRight"] = 313] = "ReplayCycleMarkerRight"; Control[Control["ReplayFOVIncrease"] = 314] = "ReplayFOVIncrease"; Control[Control["ReplayFOVDecrease"] = 315] = "ReplayFOVDecrease"; Control[Control["ReplayCameraUp"] = 316] = "ReplayCameraUp"; Control[Control["ReplayCameraDown"] = 317] = "ReplayCameraDown"; Control[Control["ReplaySave"] = 318] = "ReplaySave"; Control[Control["ReplayToggletime"] = 319] = "ReplayToggletime"; Control[Control["ReplayToggletips"] = 320] = "ReplayToggletips"; Control[Control["ReplayPreview"] = 321] = "ReplayPreview"; Control[Control["ReplayToggleTimeline"] = 322] = "ReplayToggleTimeline"; Control[Control["ReplayTimelinePickupClip"] = 323] = "ReplayTimelinePickupClip"; Control[Control["ReplayTimelineDuplicateClip"] = 324] = "ReplayTimelineDuplicateClip"; Control[Control["ReplayTimelinePlaceClip"] = 325] = "ReplayTimelinePlaceClip"; Control[Control["ReplayCtrl"] = 326] = "ReplayCtrl"; Control[Control["ReplayTimelineSave"] = 327] = "ReplayTimelineSave"; Control[Control["ReplayPreviewAudio"] = 328] = "ReplayPreviewAudio"; Control[Control["VehicleDriveLook"] = 329] = "VehicleDriveLook"; Control[Control["VehicleDriveLook2"] = 330] = "VehicleDriveLook2"; Control[Control["VehicleFlyAttack2"] = 331] = "VehicleFlyAttack2"; Control[Control["RadioWheelUpDown"] = 332] = "RadioWheelUpDown"; Control[Control["RadioWheelLeftRight"] = 333] = "RadioWheelLeftRight"; Control[Control["VehicleSlowMoUpDown"] = 334] = "VehicleSlowMoUpDown"; Control[Control["VehicleSlowMoUpOnly"] = 335] = "VehicleSlowMoUpOnly"; Control[Control["VehicleSlowMoDownOnly"] = 336] = "VehicleSlowMoDownOnly"; Control[Control["MapPointOfInterest"] = 337] = "MapPointOfInterest"; Control[Control["ReplaySnapmaticPhoto"] = 338] = "ReplaySnapmaticPhoto"; Control[Control["VehicleCarJump"] = 339] = "VehicleCarJump"; Control[Control["VehicleRocketBoost"] = 340] = "VehicleRocketBoost"; Control[Control["VehicleParachute"] = 341] = "VehicleParachute"; Control[Control["VehicleBikeWings"] = 342] = "VehicleBikeWings"; Control[Control["VehicleFlyBombBay"] = 343] = "VehicleFlyBombBay"; Control[Control["VehicleFlyCounter"] = 344] = "VehicleFlyCounter"; Control[Control["VehicleFlyTransform"] = 345] = "VehicleFlyTransform"; })(Control || (Control = {})); var Control$1 = Control; var HudColor; (function (HudColor) { HudColor[HudColor["HUD_COLOUR_PURE_WHITE"] = 0] = "HUD_COLOUR_PURE_WHITE"; HudColor[HudColor["HUD_COLOUR_WHITE"] = 1] = "HUD_COLOUR_WHITE"; HudColor[HudColor["HUD_COLOUR_BLACK"] = 2] = "HUD_COLOUR_BLACK"; HudColor[HudColor["HUD_COLOUR_GREY"] = 3] = "HUD_COLOUR_GREY"; HudColor[HudColor["HUD_COLOUR_GREYLIGHT"] = 4] = "HUD_COLOUR_GREYLIGHT"; HudColor[HudColor["HUD_COLOUR_GREYDARK"] = 5] = "HUD_COLOUR_GREYDARK"; HudColor[HudColor["HUD_COLOUR_RED"] = 6] = "HUD_COLOUR_RED"; HudColor[HudColor["HUD_COLOUR_REDLIGHT"] = 7] = "HUD_COLOUR_REDLIGHT"; HudColor[HudColor["HUD_COLOUR_REDDARK"] = 8] = "HUD_COLOUR_REDDARK"; HudColor[HudColor["HUD_COLOUR_BLUE"] = 9] = "HUD_COLOUR_BLUE"; HudColor[HudColor["HUD_COLOUR_BLUELIGHT"] = 10] = "HUD_COLOUR_BLUELIGHT"; HudColor[HudColor["HUD_COLOUR_BLUEDARK"] = 11] = "HUD_COLOUR_BLUEDARK"; HudColor[HudColor["HUD_COLOUR_YELLOW"] = 12] = "HUD_COLOUR_YELLOW"; HudColor[HudColor["HUD_COLOUR_YELLOWLIGHT"] = 13] = "HUD_COLOUR_YELLOWLIGHT"; HudColor[HudColor["HUD_COLOUR_YELLOWDARK"] = 14] = "HUD_COLOUR_YELLOWDARK"; HudColor[HudColor["HUD_COLOUR_ORANGE"] = 15] = "HUD_COLOUR_ORANGE"; HudColor[HudColor["HUD_COLOUR_ORANGELIGHT"] = 16] = "HUD_COLOUR_ORANGELIGHT"; HudColor[HudColor["HUD_COLOUR_ORANGEDARK"] = 17] = "HUD_COLOUR_ORANGEDARK"; HudColor[HudColor["HUD_COLOUR_GREEN"] = 18] = "HUD_COLOUR_GREEN"; HudColor[HudColor["HUD_COLOUR_GREENLIGHT"] = 19] = "HUD_COLOUR_GREENLIGHT"; HudColor[HudColor["HUD_COLOUR_GREENDARK"] = 20] = "HUD_COLOUR_GREENDARK"; HudColor[HudColor["HUD_COLOUR_PURPLE"] = 21] = "HUD_COLOUR_PURPLE"; HudColor[HudColor["HUD_COLOUR_PURPLELIGHT"] = 22] = "HUD_COLOUR_PURPLELIGHT"; HudColor[HudColor["HUD_COLOUR_PURPLEDARK"] = 23] = "HUD_COLOUR_PURPLEDARK"; HudColor[HudColor["HUD_COLOUR_PINK"] = 24] = "HUD_COLOUR_PINK"; HudColor[HudColor["HUD_COLOUR_RADAR_HEALTH"] = 25] = "HUD_COLOUR_RADAR_HEALTH"; HudColor[HudColor["HUD_COLOUR_RADAR_ARMOUR"] = 26] = "HUD_COLOUR_RADAR_ARMOUR"; HudColor[HudColor["HUD_COLOUR_RADAR_DAMAGE"] = 27] = "HUD_COLOUR_RADAR_DAMAGE"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER1"] = 28] = "HUD_COLOUR_NET_PLAYER1"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER2"] = 29] = "HUD_COLOUR_NET_PLAYER2"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER3"] = 30] = "HUD_COLOUR_NET_PLAYER3"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER4"] = 31] = "HUD_COLOUR_NET_PLAYER4"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER5"] = 32] = "HUD_COLOUR_NET_PLAYER5"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER6"] = 33] = "HUD_COLOUR_NET_PLAYER6"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER7"] = 34] = "HUD_COLOUR_NET_PLAYER7"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER8"] = 35] = "HUD_COLOUR_NET_PLAYER8"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER9"] = 36] = "HUD_COLOUR_NET_PLAYER9"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER10"] = 37] = "HUD_COLOUR_NET_PLAYER10"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER11"] = 38] = "HUD_COLOUR_NET_PLAYER11"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER12"] = 39] = "HUD_COLOUR_NET_PLAYER12"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER13"] = 40] = "HUD_COLOUR_NET_PLAYER13"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER14"] = 41] = "HUD_COLOUR_NET_PLAYER14"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER15"] = 42] = "HUD_COLOUR_NET_PLAYER15"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER16"] = 43] = "HUD_COLOUR_NET_PLAYER16"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER17"] = 44] = "HUD_COLOUR_NET_PLAYER17"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER18"] = 45] = "HUD_COLOUR_NET_PLAYER18"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER19"] = 46] = "HUD_COLOUR_NET_PLAYER19"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER20"] = 47] = "HUD_COLOUR_NET_PLAYER20"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER21"] = 48] = "HUD_COLOUR_NET_PLAYER21"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER22"] = 49] = "HUD_COLOUR_NET_PLAYER22"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER23"] = 50] = "HUD_COLOUR_NET_PLAYER23"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER24"] = 51] = "HUD_COLOUR_NET_PLAYER24"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER25"] = 52] = "HUD_COLOUR_NET_PLAYER25"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER26"] = 53] = "HUD_COLOUR_NET_PLAYER26"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER27"] = 54] = "HUD_COLOUR_NET_PLAYER27"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER28"] = 55] = "HUD_COLOUR_NET_PLAYER28"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER29"] = 56] = "HUD_COLOUR_NET_PLAYER29"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER30"] = 57] = "HUD_COLOUR_NET_PLAYER30"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER31"] = 58] = "HUD_COLOUR_NET_PLAYER31"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER32"] = 59] = "HUD_COLOUR_NET_PLAYER32"; HudColor[HudColor["HUD_COLOUR_SIMPLEBLIP_DEFAULT"] = 60] = "HUD_COLOUR_SIMPLEBLIP_DEFAULT"; HudColor[HudColor["HUD_COLOUR_MENU_BLUE"] = 61] = "HUD_COLOUR_MENU_BLUE"; HudColor[HudColor["HUD_COLOUR_MENU_GREY_LIGHT"] = 62] = "HUD_COLOUR_MENU_GREY_LIGHT"; HudColor[HudColor["HUD_COLOUR_MENU_BLUE_EXTRA_DARK"] = 63] = "HUD_COLOUR_MENU_BLUE_EXTRA_DARK"; HudColor[HudColor["HUD_COLOUR_MENU_YELLOW"] = 64] = "HUD_COLOUR_MENU_YELLOW"; HudColor[HudColor["HUD_COLOUR_MENU_YELLOW_DARK"] = 65] = "HUD_COLOUR_MENU_YELLOW_DARK"; HudColor[HudColor["HUD_COLOUR_MENU_GREEN"] = 66] = "HUD_COLOUR_MENU_GREEN"; HudColor[HudColor["HUD_COLOUR_MENU_GREY"] = 67] = "HUD_COLOUR_MENU_GREY"; HudColor[HudColor["HUD_COLOUR_MENU_GREY_DARK"] = 68] = "HUD_COLOUR_MENU_GREY_DARK"; HudColor[HudColor["HUD_COLOUR_MENU_HIGHLIGHT"] = 69] = "HUD_COLOUR_MENU_HIGHLIGHT"; HudColor[HudColor["HUD_COLOUR_MENU_STANDARD"] = 70] = "HUD_COLOUR_MENU_STANDARD"; HudColor[HudColor["HUD_COLOUR_MENU_DIMMED"] = 71] = "HUD_COLOUR_MENU_DIMMED"; HudColor[HudColor["HUD_COLOUR_MENU_EXTRA_DIMMED"] = 72] = "HUD_COLOUR_MENU_EXTRA_DIMMED"; HudColor[HudColor["HUD_COLOUR_BRIEF_TITLE"] = 73] = "HUD_COLOUR_BRIEF_TITLE"; HudColor[HudColor["HUD_COLOUR_MID_GREY_MP"] = 74] = "HUD_COLOUR_MID_GREY_MP"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER1_DARK"] = 75] = "HUD_COLOUR_NET_PLAYER1_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER2_DARK"] = 76] = "HUD_COLOUR_NET_PLAYER2_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER3_DARK"] = 77] = "HUD_COLOUR_NET_PLAYER3_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER4_DARK"] = 78] = "HUD_COLOUR_NET_PLAYER4_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER5_DARK"] = 79] = "HUD_COLOUR_NET_PLAYER5_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER6_DARK"] = 80] = "HUD_COLOUR_NET_PLAYER6_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER7_DARK"] = 81] = "HUD_COLOUR_NET_PLAYER7_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER8_DARK"] = 82] = "HUD_COLOUR_NET_PLAYER8_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER9_DARK"] = 83] = "HUD_COLOUR_NET_PLAYER9_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER10_DARK"] = 84] = "HUD_COLOUR_NET_PLAYER10_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER11_DARK"] = 85] = "HUD_COLOUR_NET_PLAYER11_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER12_DARK"] = 86] = "HUD_COLOUR_NET_PLAYER12_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER13_DARK"] = 87] = "HUD_COLOUR_NET_PLAYER13_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER14_DARK"] = 88] = "HUD_COLOUR_NET_PLAYER14_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER15_DARK"] = 89] = "HUD_COLOUR_NET_PLAYER15_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER16_DARK"] = 90] = "HUD_COLOUR_NET_PLAYER16_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER17_DARK"] = 91] = "HUD_COLOUR_NET_PLAYER17_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER18_DARK"] = 92] = "HUD_COLOUR_NET_PLAYER18_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER19_DARK"] = 93] = "HUD_COLOUR_NET_PLAYER19_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER20_DARK"] = 94] = "HUD_COLOUR_NET_PLAYER20_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER21_DARK"] = 95] = "HUD_COLOUR_NET_PLAYER21_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER22_DARK"] = 96] = "HUD_COLOUR_NET_PLAYER22_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER23_DARK"] = 97] = "HUD_COLOUR_NET_PLAYER23_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER24_DARK"] = 98] = "HUD_COLOUR_NET_PLAYER24_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER25_DARK"] = 99] = "HUD_COLOUR_NET_PLAYER25_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER26_DARK"] = 100] = "HUD_COLOUR_NET_PLAYER26_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER27_DARK"] = 101] = "HUD_COLOUR_NET_PLAYER27_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER28_DARK"] = 102] = "HUD_COLOUR_NET_PLAYER28_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER29_DARK"] = 103] = "HUD_COLOUR_NET_PLAYER29_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER30_DARK"] = 104] = "HUD_COLOUR_NET_PLAYER30_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER31_DARK"] = 105] = "HUD_COLOUR_NET_PLAYER31_DARK"; HudColor[HudColor["HUD_COLOUR_NET_PLAYER32_DARK"] = 106] = "HUD_COLOUR_NET_PLAYER32_DARK"; HudColor[HudColor["HUD_COLOUR_BRONZE"] = 107] = "HUD_COLOUR_BRONZE"; HudColor[HudColor["HUD_COLOUR_SILVER"] = 108] = "HUD_COLOUR_SILVER"; HudColor[HudColor["HUD_COLOUR_GOLD"] = 109] = "HUD_COLOUR_GOLD"; HudColor[HudColor["HUD_COLOUR_PLATINUM"] = 110] = "HUD_COLOUR_PLATINUM"; HudColor[HudColor["HUD_COLOUR_GANG1"] = 111] = "HUD_COLOUR_GANG1"; HudColor[HudColor["HUD_COLOUR_GANG2"] = 112] = "HUD_COLOUR_GANG2"; HudColor[HudColor["HUD_COLOUR_GANG3"] = 113] = "HUD_COLOUR_GANG3"; HudColor[HudColor["HUD_COLOUR_GANG4"] = 114] = "HUD_COLOUR_GANG4"; HudColor[HudColor["HUD_COLOUR_SAME_CREW"] = 115] = "HUD_COLOUR_SAME_CREW"; HudColor[HudColor["HUD_COLOUR_FREEMODE"] = 116] = "HUD_COLOUR_FREEMODE"; HudColor[HudColor["HUD_COLOUR_PAUSE_BG"] = 117] = "HUD_COLOUR_PAUSE_BG"; HudColor[HudColor["HUD_COLOUR_FRIENDLY"] = 118] = "HUD_COLOUR_FRIENDLY"; HudColor[HudColor["HUD_COLOUR_ENEMY"] = 119] = "HUD_COLOUR_ENEMY"; HudColor[HudColor["HUD_COLOUR_LOCATION"] = 120] = "HUD_COLOUR_LOCATION"; HudColor[HudColor["HUD_COLOUR_PICKUP"] = 121] = "HUD_COLOUR_PICKUP"; HudColor[HudColor["HUD_COLOUR_PAUSE_SINGLEPLAYER"] = 122] = "HUD_COLOUR_PAUSE_SINGLEPLAYER"; HudColor[HudColor["HUD_COLOUR_FREEMODE_DARK"] = 123] = "HUD_COLOUR_FREEMODE_DARK"; HudColor[HudColor["HUD_COLOUR_INACTIVE_MISSION"] = 124] = "HUD_COLOUR_INACTIVE_MISSION"; HudColor[HudColor["HUD_COLOUR_DAMAGE"] = 125] = "HUD_COLOUR_DAMAGE"; HudColor[HudColor["HUD_COLOUR_PINKLIGHT"] = 126] = "HUD_COLOUR_PINKLIGHT"; HudColor[HudColor["HUD_COLOUR_PM_MITEM_HIGHLIGHT"] = 127] = "HUD_COLOUR_PM_MITEM_HIGHLIGHT"; HudColor[HudColor["HUD_COLOUR_SCRIPT_VARIABLE"] = 128] = "HUD_COLOUR_SCRIPT_VARIABLE"; HudColor[HudColor["HUD_COLOUR_YOGA"] = 129] = "HUD_COLOUR_YOGA"; HudColor[HudColor["HUD_COLOUR_TENNIS"] = 130] = "HUD_COLOUR_TENNIS"; HudColor[HudColor["HUD_COLOUR_GOLF"] = 131] = "HUD_COLOUR_GOLF"; HudColor[HudColor["HUD_COLOUR_SHOOTING_RANGE"] = 132] = "HUD_COLOUR_SHOOTING_RANGE"; HudColor[HudColor["HUD_COLOUR_FLIGHT_SCHOOL"] = 133] = "HUD_COLOUR_FLIGHT_SCHOOL"; HudColor[HudColor["HUD_COLOUR_NORTH_BLUE"] = 134] = "HUD_COLOUR_NORTH_BLUE"; HudColor[HudColor["HUD_COLOUR_SOCIAL_CLUB"] = 135] = "HUD_COLOUR_SOCIAL_CLUB"; HudColor[HudColor["HUD_COLOUR_PLATFORM_BLUE"] = 136] = "HUD_COLOUR_PLATFORM_BLUE"; HudColor[HudColor["HUD_COLOUR_PLATFORM_GREEN"] = 137] = "HUD_COLOUR_PLATFORM_GREEN"; HudColor[HudColor["HUD_COLOUR_PLATFORM_GREY"] = 138] = "HUD_COLOUR_PLATFORM_GREY"; HudColor[HudColor["HUD_COLOUR_FACEBOOK_BLUE"] = 139] = "HUD_COLOUR_FACEBOOK_BLUE"; HudColor[HudColor["HUD_COLOUR_INGAME_BG"] = 140] = "HUD_COLOUR_INGAME_BG"; HudColor[HudColor["HUD_COLOUR_DARTS"] = 141] = "HUD_COLOUR_DARTS"; HudColor[HudColor["HUD_COLOUR_WAYPOINT"] = 142] = "HUD_COLOUR_WAYPOINT"; HudColor[HudColor["HUD_COLOUR_MICHAEL"] = 143] = "HUD_COLOUR_MICHAEL"; HudColor[HudColor["HUD_COLOUR_FRANKLIN"] = 144] = "HUD_COLOUR_FRANKLIN"; HudColor[HudColor["HUD_COLOUR_TREVOR"] = 145] = "HUD_COLOUR_TREVOR"; HudColor[HudColor["HUD_COLOUR_GOLF_P1"] = 146] = "HUD_COLOUR_GOLF_P1"; HudColor[HudColor["HUD_COLOUR_GOLF_P2"] = 147] = "HUD_COLOUR_GOLF_P2"; HudColor[HudColor["HUD_COLOUR_GOLF_P3"] = 148] = "HUD_COLOUR_GOLF_P3"; HudColor[HudColor["HUD_COLOUR_GOLF_P4"] = 149] = "HUD_COLOUR_GOLF_P4"; HudColor[HudColor["HUD_COLOUR_WAYPOINTLIGHT"] = 150] = "HUD_COLOUR_WAYPOINTLIGHT"; HudColor[HudColor["HUD_COLOUR_WAYPOINTDARK"] = 151] = "HUD_COLOUR_WAYPOINTDARK"; HudColor[HudColor["HUD_COLOUR_PANEL_LIGHT"] = 152] = "HUD_COLOUR_PANEL_LIGHT"; HudColor[HudColor["HUD_COLOUR_MICHAEL_DARK"] = 153] = "HUD_COLOUR_MICHAEL_DARK"; HudColor[HudColor["HUD_COLOUR_FRANKLIN_DARK"] = 154] = "HUD_COLOUR_FRANKLIN_DARK"; HudColor[HudColor["HUD_COLOUR_TREVOR_DARK"] = 155] = "HUD_COLOUR_TREVOR_DARK"; HudColor[HudColor["HUD_COLOUR_OBJECTIVE_ROUTE"] = 156] = "HUD_COLOUR_OBJECTIVE_ROUTE"; HudColor[HudColor["HUD_COLOUR_PAUSEMAP_TINT"] = 157] = "HUD_COLOUR_PAUSEMAP_TINT"; HudColor[HudColor["HUD_COLOUR_PAUSE_DESELECT"] = 158] = "HUD_COLOUR_PAUSE_DESELECT"; HudColor[HudColor["HUD_COLOUR_PM_WEAPONS_PURCHASABLE"] = 159] = "HUD_COLOUR_PM_WEAPONS_PURCHASABLE"; HudColor[HudColor["HUD_COLOUR_PM_WEAPONS_LOCKED"] = 160] = "HUD_COLOUR_PM_WEAPONS_LOCKED"; HudColor[HudColor["HUD_COLOUR_END_SCREEN_BG"] = 161] = "HUD_COLOUR_END_SCREEN_BG"; HudColor[HudColor["HUD_COLOUR_CHOP"] = 162] = "HUD_COLOUR_CHOP"; HudColor[HudColor["HUD_COLOUR_PAUSEMAP_TINT_HALF"] = 163] = "HUD_COLOUR_PAUSEMAP_TINT_HALF"; HudColor[HudColor["HUD_COLOUR_NORTH_BLUE_OFFICIAL"] = 164] = "HUD_COLOUR_NORTH_BLUE_OFFICIAL"; HudColor[HudColor["HUD_COLOUR_SCRIPT_VARIABLE_2"] = 165] = "HUD_COLOUR_SCRIPT_VARIABLE_2"; HudColor[HudColor["HUD_COLOUR_H"] = 166] = "HUD_COLOUR_H"; HudColor[HudColor["HUD_COLOUR_HDARK"] = 167] = "HUD_COLOUR_HDARK"; HudColor[HudColor["HUD_COLOUR_T"] = 168] = "HUD_COLOUR_T"; HudColor[HudColor["HUD_COLOUR_TDARK"] = 169] = "HUD_COLOUR_TDARK"; HudColor[HudColor["HUD_COLOUR_HSHARD"] = 170] = "HUD_COLOUR_HSHARD"; HudColor[HudColor["HUD_COLOUR_CONTROLLER_MICHAEL"] = 171] = "HUD_COLOUR_CONTROLLER_MICHAEL"; HudColor[HudColor["HUD_COLOUR_CONTROLLER_FRANKLIN"] = 172] = "HUD_COLOUR_CONTROLLER_FRANKLIN"; HudColor[HudColor["HUD_COLOUR_CONTROLLER_TREVOR"] = 173] = "HUD_COLOUR_CONTROLLER_TREVOR"; HudColor[HudColor["HUD_COLOUR_CONTROLLER_CHOP"] = 174] = "HUD_COLOUR_CONTROLLER_CHOP"; HudColor[HudColor["HUD_COLOUR_VIDEO_EDITOR_VIDEO"] = 175] = "HUD_COLOUR_VIDEO_EDITOR_VIDEO"; HudColor[HudColor["HUD_COLOUR_VIDEO_EDITOR_AUDIO"] = 176] = "HUD_COLOUR_VIDEO_EDITOR_AUDIO"; HudColor[HudColor["HUD_COLOUR_VIDEO_EDITOR_TEXT"] = 177] = "HUD_COLOUR_VIDEO_EDITOR_TEXT"; HudColor[HudColor["HUD_COLOUR_HB_BLUE"] = 178] = "HUD_COLOUR_HB_BLUE"; HudColor[HudColor["HUD_COLOUR_HB_YELLOW"] = 179] = "HUD_COLOUR_HB_YELLOW"; })(HudColor || (HudColor = {})); var HudColor$1 = HudColor; var ChangeDirection; (function (ChangeDirection) { ChangeDirection[ChangeDirection["Left"] = 0] = "Left"; ChangeDirection[ChangeDirection["Right"] = 1] = "Right"; })(ChangeDirection || (ChangeDirection = {})); var ChangeDirection$1 = ChangeDirection; class Color { constructor(r, g, b, a = 255) { this.R = r; this.G = g; this.B = b; this.A = a; } } Color.Empty = new Color(0, 0, 0, 0); Color.Transparent = new Color(0, 0, 0, 0); Color.Black = new Color(0, 0, 0, 255); Color.White = new Color(255, 255, 255, 255); Color.WhiteSmoke = new Color(245, 245, 245, 255); class Size { constructor(w = 0, h = 0) { this.Width = w; this.Height = h; } } class Point { constructor(x, y) { this.X = 0; this.Y = 0; this.X = x; this.Y = y; } static Parse(arg) { if (typeof arg === "object") { if (arg.length) { return new Point(arg[0], arg[1]); } else if (arg.X && arg.Y) { return new Point(arg.X, arg.Y); } } else if (typeof arg === "string") { if (arg.indexOf(",") !== -1) { const arr = arg.split(","); return new Point(parseFloat(arr[0]), parseFloat(arr[1])); } } return new Point(0, 0); } } class IElement { constructor() { this.Enabled = true; } } class Text extends IElement { constructor(caption, pos, scale, color, font, centered) { super(); this.Caption = caption; this.Pos = pos; this.Scale = scale; this.Color = color || new Color(255, 255, 255, 255); this.Font = font || 0; this.Centered = centered || false; } Draw(caption, pos, scale, color, font, centered) { if (caption && !pos && !scale && !color && !font && !centered) { pos = new Point(this.Pos.X + caption.Width, this.Pos.Y + caption.Height); scale = this.Scale; color = this.Color; font = this.Font; centered = this.Centered; } const x = pos.X / 1280.0; const y = pos.Y / 720.0; game__default.setTextFont(parseInt(font)); game__default.setTextScale(scale, scale); game__default.setTextColour(color.R, color.G, color.B, color.A); game__default.setTextCentre(centered); game__default.beginTextCommandDisplayText("STRING"); Text.AddLongString(caption); game__default.endTextCommandDisplayText(x, y, 0); } static AddLongString(text) { if (!text.length) return; const maxStringLength = 99; for (let i = 0, position; i < text.length; i += maxStringLength) { let currentText = text.substr(i, i + maxStringLength); let currentIndex = i; if ((currentText.match(/~/g) || []).length % 2 !== 0) { position = currentText.lastIndexOf('~'); i -= (maxStringLength - position); } else { position = Math.min(maxStringLength, text.length - currentIndex); } game__default.addTextComponentSubstringPlayerName(text.substr(currentIndex, position)); } } } const gameScreen = game__default.getActiveScreenResolution(0, 0); class Screen { static get ResolutionMaintainRatio() { const ratio = Screen.Width / Screen.Height; const width = 1080.0 * ratio; return new Size(width, 1080.0); } static MousePosition(relative = false) { const res = Screen.ResolutionMaintainRatio; const cursor = getCursorPos(); let [mouseX, mouseY] = [cursor.x, cursor.y]; if (relative) [mouseX, mouseY] = [cursor.x / res.Width, cursor.y / res.Height]; return { X: mouseX, Y: mouseY }; } static IsMouseInBounds(topLeft, boxSize) { const mousePosition = Screen.MousePosition(); return (mousePosition.X >= topLeft.X && mousePosition.X <= topLeft.X + boxSize.Width && (mousePosition.Y > topLeft.Y && mousePosition.Y < topLeft.Y + boxSize.Height)); } static GetTextWidth(text, font, scale) { game__default.beginTextCommandGetWidth("CELL_EMAIL_BCON"); Text.AddLongString(text); game__default.setTextFont(font); game__default.setTextScale(1.0, scale); const width = game__default.endTextCommandGetWidth(true); const res = Screen.ResolutionMaintainRatio; return res.Width * width; } static GetLineCount(text, position, font, scale, wrap) { game__default.beginTextCommandLineCount("CELL_EMAIL_BCON"); Text.AddLongString(text); const res = Screen.ResolutionMaintainRatio; const x = position.X / res.Width; const y = position.Y / res.Height; game__default.setTextFont(font); game__default.setTextScale(1.0, scale); if (wrap > 0) { const start = position.X / res.Width; const end = start + (wrap / res.Width); game__default.setTextWrap(x, end); } let lineCount = game__default.endTextCommandLineCount(x, y); return lineCount; } } Screen.Width = gameScreen[1]; Screen.Height = gameScreen[2]; class Sprite { constructor(textureDict, textureName, pos, size, heading = 0, color = new Color(255, 255, 255)) { this.TextureDict = textureDict; this.TextureName = textureName; this.Pos = pos; this.Size = size; this.Heading = heading; this.Color = color; this.Visible = true; } LoadTextureDictionary() { this.requestTextureDictPromise(this._textureDict).then((succ) => { }); } requestTextureDictPromise(textureDict) { return new Promise((resolve, reject) => { game__default.requestStreamedTextureDict(textureDict, true); let inter = setInterval(() => { if (game__default.hasStreamedTextureDictLoaded(textureDict)) { clearInterval(inter); return resolve(true); } }, 10); }); } set TextureDict(v) { this._textureDict = v; if (!this.IsTextureDictionaryLoaded) this.LoadTextureDictionary(); } get TextureDict() { return this._textureDict; } get IsTextureDictionaryLoaded() { return game__default.hasStreamedTextureDictLoaded(this._textureDict); } Draw(textureDictionary, textureName, pos, size, heading, color, loadTexture) { textureDictionary = textureDictionary || this.TextureDict; textureName = textureName || this.TextureName; pos = pos || this.Pos; size = size || this.Size; heading = heading || this.Heading; color = color || this.Color; loadTexture = loadTexture || true; if (loadTexture) { if (!game__default.hasStreamedTextureDictLoaded(textureDictionary)) game__default.requestStreamedTextureDict(textureDictionary, true); } const screenw = Screen.Width; const screenh = Screen.Height; const height = 1080.0; const ratio = screenw / screenh; const width = height * ratio; const w = this.Size.Width / width; const h = this.Size.Height / height; const x = this.Pos.X / width + w * 0.5; const y = this.Pos.Y / height + h * 0.5; game__default.drawSprite(textureDictionary, textureName, x, y, w, h, heading, color.R, color.G, color.B, color.A, true); } } class Rectangle extends IElement { constructor(pos, size, color) { super(); this.Enabled = true; this.Pos = pos; this.Size = size; this.Color = color; } Draw(pos, size, color) { if (!pos) pos = new Size(0, 0); if (!size && !color) { pos = new Point(this.Pos.X + pos.Width, this.Pos.Y + pos.Height); size = this.Size; color = this.Color; } const w = size.Width / 1280.0; const h = size.Height / 720.0; const x = pos.X / 1280.0 + w * 0.5; const y = pos.Y / 720.0 + h * 0.5; game__default.drawRect(x, y, w, h, color.R, color.G, color.B, color.A, false); } } class ResRectangle extends Rectangle { constructor(pos, size, color) { super(pos, size, color); } Draw(pos, size, color) { if (!pos) pos = new Size(); if (pos && !size && !color) { pos = new Point(this.Pos.X + pos.Width, this.Pos.Y + pos.Height); size = this.Size; color = this.Color; } const screenw = Screen.Width; const screenh = Screen.Height; const height = 1080.0; const ratio = screenw / screenh; const width = height * ratio; const w = size.Width / width; const h = size.Height / height; const x = pos.X / width + w * 0.5; const y = pos.Y / height + h * 0.5; game__default.drawRect(x, y, w, h, color.R, color.G, color.B, color.A, false); } } class ResText extends Text { constructor(caption, pos, scale, color, font, centered) { super(caption, pos, scale, color || new Color(255, 255, 255), font || 0, false); this.TextAlignment = Alignment$1.Left; this.Wrap = 0; if (centered) this.TextAlignment = centered; } get WordWrap() { return new Size(this.Wrap, 0); } set WordWrap(value) { this.Wrap = value.Width; } Draw(arg1, pos, scale, color, font, arg2, dropShadow, outline, wordWrap) { let caption = arg1; let centered = arg2; let textAlignment = arg2; if (!arg1) arg1 = new Size(0, 0); if (arg1 && !pos) { textAlignment = this.TextAlignment; caption = this.Caption; pos = new Point(this.Pos.X + arg1.Width, this.Pos.Y + arg1.Height); scale = this.Scale; color = this.Color; font = this.Font; if (centered == true || centered == false) { centered = this.Centered; } else { centered = undefined; dropShadow = this.DropShadow; outline = this.Outline; wordWrap = this.WordWrap; } } const screenw = Screen.Width; const screenh = Screen.Height; const height = 1080.0; const ratio = screenw / screenh; const width = height * ratio; const x = this.Pos.X / width; const y = this.Pos.Y / height; game__default.setTextFont(parseInt(font)); game__default.setTextScale(1.0, scale); game__default.setTextColour(color.R, color.G, color.B, color.A); if (centered !== undefined) { game__default.setTextCentre(centered); } else { if (dropShadow) game__default.setTextDropshadow(2, 0, 0, 0, 0); if (outline) logWarning("[NativeUI] ResText outline not working!"); switch (textAlignment) { case Alignment$1.Centered: game__default.setTextCentre(true); break; case Alignment$1.Right: game__default.setTextRightJustify(true); game__default.setTextWrap(0.0, x); break; } if (this.Wrap) { const xsize = (this.Pos.X + this.Wrap) / width; game__default.setTextWrap(x, xsize); } } game__default.beginTextCommandDisplayText("CELL_EMAIL_BCON"); Text.AddLongString(caption); game__default.endTextCommandDisplayText(x, y, 0); } } function UUIDV4() { let uuid = ""; let ii; for (ii = 0; ii < 32; ii += 1) { switch (ii) { case 8: case 20: uuid += "-"; uuid += ((Math.random() * 16) | 0).toString(16); break; case 12: uuid += "-"; uuid += "4"; break; case 16: uuid += "-"; uuid += ((Math.random() * 4) | 8).toString(16); break; default: uuid += ((Math.random() * 16) | 0).toString(16); } } return uuid; } class UIMenuItem { constructor(text, description = "", data = null) { this.Id = UUIDV4(); this.BackColor = UIMenuItem.DefaultBackColor; this.HighlightedBackColor = UIMenuItem.DefaultHighlightedBackColor; this.ForeColor = UIMenuItem.DefaultForeColor; this.HighlightedForeColor = UIMenuItem.DefaultHighlightedForeColor; this.RightLabel = ""; this.LeftBadge = BadgeStyle$1.None; this.RightBadge = BadgeStyle$1.None; this.Enabled = true; this.Data = data; this._rectangle = new ResRectangle(new Point(0, 0), new Size(431, 38), new Color(150, 0, 0, 0)); this._text = new ResText(text, new Point(8, 0), 0.33, Color.WhiteSmoke, Font$1.ChaletLondon, Alignment$1.Left); this.Description = description; this._selectedSprite = new Sprite("commonmenu", "gradient_nav", new Point(0, 0), new Size(431, 38)); this._badgeLeft = new Sprite("commonmenu", "", new Point(0, 0), new Size(40, 40)); this._badgeRight = new Sprite("commonmenu", "", new Point(0, 0), new Size(40, 40)); this._labelText = new ResText("", new Point(0, 0), 0.35, Color.White, 0, Alignment$1.Right); } get Text() { return this._text.Caption; } set Text(text) { this._text.Caption = text; } get Description() { return this._description; } set Description(text) { this._description = text; if (this.hasOwnProperty('Parent')) { this.Parent.UpdateDescriptionCaption(); } } SetVerticalPosition(y) { this._rectangle.Pos = new Point(this.Offset.X, y + 144 + this.Offset.Y); this._selectedSprite.Pos = new Point(0 + this.Offset.X, y + 144 + this.Offset.Y); this._text.Pos = new Point(8 + this.Offset.X, y + 147 + this.Offset.Y); this._badgeLeft.Pos = new Point(0 + this.Offset.X, y + 142 + this.Offset.Y); this._badgeRight.Pos = new Point(385 + this.Offset.X, y + 142 + this.Offset.Y); this._labelText.Pos = new Point(420 + this.Offset.X, y + 148 + this.Offset.Y); } addEvent(event, ...args) { this._event = { event: event, args: args }; } fireEvent() { if (this._event) { emit(this._event.event, ...this._event.args); } } Draw() { this._rectangle.Size = new Size(431 + this.Parent.WidthOffset, 38); this._selectedSprite.Size = new Size(431 + this.Parent.WidthOffset, 38); if (this.Hovered && !this.Selected) { this._rectangle.Color = new Color(255, 255, 255, 20); this._rectangle.Draw(); } this._selectedSprite.Color = this.Selected ? this.HighlightedBackColor : this.BackColor; this._selectedSprite.Draw(); this._text.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); if (this.LeftBadge != BadgeStyle$1.None) { this._text.Pos = new Point(35 + this.Offset.X, this._text.Pos.Y); this._badgeLeft.TextureDict = this.BadgeToSpriteLib(this.LeftBadge); this._badgeLeft.TextureName = this.BadgeToSpriteName(this.LeftBadge, this.Selected); this._badgeLeft.Color = this.IsBagdeWhiteSprite(this.LeftBadge) ? this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148) : Color.White; this._badgeLeft.Draw(); } else { this._text.Pos = new Point(8 + this.Offset.X, this._text.Pos.Y); } if (this.RightBadge != BadgeStyle$1.None) { this._badgeRight.Pos = new Point(385 + this.Offset.X + this.Parent.WidthOffset, this._badgeRight.Pos.Y); this._badgeRight.TextureDict = this.BadgeToSpriteLib(this.RightBadge); this._badgeRight.TextureName = this.BadgeToSpriteName(this.RightBadge, this.Selected); this._badgeRight.Color = this.IsBagdeWhiteSprite(this.RightBadge) ? this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148) : Color.White; this._badgeRight.Draw(); } if (this.RightLabel && this.RightLabel !== "") { this._labelText.Pos = new Point(420 + this.Offset.X + this.Parent.WidthOffset, this._labelText.Pos.Y); this._labelText.Caption = this.RightLabel; this._labelText.Color = this._text.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._labelText.Draw(); } this._text.Draw(); } SetLeftBadge(badge) { this.LeftBadge = badge; } SetRightBadge(badge) { this.RightBadge = badge; } SetRightLabel(text) { this.RightLabel = text; } BadgeToSpriteLib(badge) { switch (badge) { case BadgeStyle$1.Sale: return "mpshopsale"; case BadgeStyle$1.Audio1: case BadgeStyle$1.Audio2: case BadgeStyle$1.Audio3: case BadgeStyle$1.AudioInactive: case BadgeStyle$1.AudioMute: return "mpleaderboard"; default: return "commonmenu"; } } BadgeToSpriteName(badge, selected) { switch (badge) { case BadgeStyle$1.None: return ""; case BadgeStyle$1.BronzeMedal: return "mp_medal_bronze"; case BadgeStyle$1.GoldMedal: return "mp_medal_gold"; case BadgeStyle$1.SilverMedal: return "medal_silver"; case BadgeStyle$1.Alert: return "mp_alerttriangle"; case BadgeStyle$1.Crown: return "mp_hostcrown"; case BadgeStyle$1.Ammo: return selected ? "shop_ammo_icon_b" : "shop_ammo_icon_a"; case BadgeStyle$1.Armour: return selected ? "shop_armour_icon_b" : "shop_armour_icon_a"; case BadgeStyle$1.Barber: return selected ? "shop_barber_icon_b" : "shop_barber_icon_a"; case BadgeStyle$1.Clothes: return selected ? "shop_clothing_icon_b" : "shop_clothing_icon_a"; case BadgeStyle$1.Franklin: return selected ? "shop_franklin_icon_b" : "shop_franklin_icon_a"; case BadgeStyle$1.Bike: return selected ? "shop_garage_bike_icon_b" : "shop_garage_bike_icon_a"; case BadgeStyle$1.Car: return selected ? "shop_garage_icon_b" : "shop_garage_icon_a"; case BadgeStyle$1.Gun: return selected ? "shop_gunclub_icon_b" : "shop_gunclub_icon_a"; case BadgeStyle$1.Heart: return selected ? "shop_health_icon_b" : "shop_health_icon_a"; case BadgeStyle$1.Lock: return "shop_lock"; case BadgeStyle$1.Makeup: return selected ? "shop_makeup_icon_b" : "shop_makeup_icon_a"; case BadgeStyle$1.Mask: return selected ? "shop_mask_icon_b" : "shop_mask_icon_a"; case BadgeStyle$1.Michael: return selected ? "shop_michael_icon_b" : "shop_michael_icon_a"; case BadgeStyle$1.Star: return "shop_new_star"; case BadgeStyle$1.Tattoo: return selected ? "shop_tattoos_icon_b" : "shop_tattoos_icon_a"; case BadgeStyle$1.Tick: return "shop_tick_icon"; case BadgeStyle$1.Trevor: return selected ? "shop_trevor_icon_b" : "shop_trevor_icon_a"; case BadgeStyle$1.Sale: return "saleicon"; case BadgeStyle$1.ArrowLeft: return "arrowleft"; case BadgeStyle$1.ArrowRight: return "arrowright"; case BadgeStyle$1.Audio1: return "leaderboard_audio_1"; case BadgeStyle$1.Audio2: return "leaderboard_audio_2"; case BadgeStyle$1.Audio3: return "leaderboard_audio_3"; case BadgeStyle$1.AudioInactive: return "leaderboard_audio_inactive"; case BadgeStyle$1.AudioMute: return "leaderboard_audio_mute"; default: return ""; } } IsBagdeWhiteSprite(badge) { switch (badge) { case BadgeStyle$1.Lock: case BadgeStyle$1.Tick: case BadgeStyle$1.Crown: return true; default: return false; } } BadgeToColor(badge, selected) { switch (badge) { case BadgeStyle$1.Lock: case BadgeStyle$1.Tick: case BadgeStyle$1.Crown: return selected ? new Color(255, 0, 0, 0) : new Color(255, 255, 255, 255); default: return new Color(255, 255, 255, 255); } } } UIMenuItem.DefaultBackColor = Color.Empty; UIMenuItem.DefaultHighlightedBackColor = Color.White; UIMenuItem.DefaultForeColor = Color.WhiteSmoke; UIMenuItem.DefaultHighlightedForeColor = Color.Black; class UIMenuCheckboxItem extends UIMenuItem { constructor(text, check = false, description = "") { super(text, description); this.Checked = false; const y = 0; this._checkedSprite = new Sprite("commonmenu", "shop_box_blank", new Point(410, y + 95), new Size(50, 50)); this.Checked = check; } SetVerticalPosition(y) { super.SetVerticalPosition(y); this._checkedSprite.Pos = new Point(380 + this.Offset.X + this.Parent.WidthOffset, y + 138 + this.Offset.Y); } Draw() { super.Draw(); this._checkedSprite.Pos = this._checkedSprite.Pos = new Point(380 + this.Offset.X + this.Parent.WidthOffset, this._checkedSprite.Pos.Y); const isDefaultHightlitedForeColor = this.HighlightedForeColor == UIMenuItem.DefaultHighlightedForeColor; if (this.Selected && isDefaultHightlitedForeColor) { this._checkedSprite.TextureName = this.Checked ? "shop_box_tickb" : "shop_box_blankb"; } else { this._checkedSprite.TextureName = this.Checked ? "shop_box_tick" : "shop_box_blank"; } this._checkedSprite.Color = this.Enabled ? this.Selected && !isDefaultHightlitedForeColor ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._checkedSprite.Draw(); } SetRightBadge(badge) { return this; } SetRightLabel(text) { return this; } } class ListItem { constructor(text = "", data = null) { this.Id = UUIDV4(); this.DisplayText = text; this.Data = data; } } class ItemsCollection { constructor(items) { if (items.length === 0) throw new Error("ItemsCollection cannot be empty"); this.items = items; } length() { return this.items.length; } getListItems() { const items = []; for (const item of this.items) { if (item instanceof ListItem) { items.push(item); } else if (typeof item == "string") { items.push(new ListItem(item)); } else if (typeof item == "number") { items.push(new ListItem(item.toString())); } } return items; } } class UIMenuListItem extends UIMenuItem { constructor(text, description = "", collection = new ItemsCollection([]), startIndex = 0, data = null) { super(text, description, data); this.ScrollingEnabled = true; this.HoldTimeBeforeScroll = 200; this._currentOffset = 0; this._itemsCollection = []; this._index = 0; let y = 0; this.Collection = collection.getListItems(); this.Index = startIndex; this._arrowLeft = new Sprite("commonmenu", "arrowleft", new Point(110, 105 + y), new Size(30, 30)); this._arrowRight = new Sprite("commonmenu", "arrowright", new Point(280, 105 + y), new Size(30, 30)); this._itemText = new ResText("", new Point(290, y + 104), 0.35, Color.White, Font$1.ChaletLondon, Alignment$1.Right); } get Collection() { return this._itemsCollection; } set Collection(v) { if (!v) throw new Error("The collection can't be null"); this._itemsCollection = v; } set SelectedItem(v) { const idx = this.Collection.findIndex(li => li.Id === v.Id); if (idx > 0) this.Index = idx; else this.Index = 0; } get SelectedItem() { return this.Collection.length > 0 ? this.Collection[this.Index] : null; } get SelectedValue() { return this.SelectedItem == null ? null : this.SelectedItem.Data == null ? this.SelectedItem.DisplayText : this.SelectedItem.Data; } get Index() { if (this.Collection == null) return -1; if (this.Collection != null && this.Collection.length == 0) return -1; return this._index % this.Collection.length; } set Index(value) { if (this.Collection == null) return; if (this.Collection != null && this.Collection.length == 0) return; this._index = 100000000 - (100000000 % this.Collection.length) + value; const caption = this.Collection.length >= this.Index ? this.Collection[this.Index].DisplayText : " "; this._currentOffset = Screen.GetTextWidth(caption, this._itemText && this._itemText.Font ? this._itemText.Font : 0, 0.35); } setCollection(collection) { this.Collection = collection.getListItems(); } setCollectionItem(index, item, resetSelection = true) { if (index > this.Collection.length) throw new Error("Index out of bounds"); if (typeof item === "string") item = new ListItem(item); this.Collection.splice(index, 1, item); if (resetSelection) this.Index = 0; } SetVerticalPosition(y) { this._arrowLeft.Pos = new Point(300 + this.Offset.X + this.Parent.WidthOffset, 147 + y + this.Offset.Y); this._arrowRight.Pos = new Point(400 + this.Offset.X + this.Parent.WidthOffset, 147 + y + this.Offset.Y); this._itemText.Pos = new Point(300 + this.Offset.X + this.Parent.WidthOffset, y + 147 + this.Offset.Y); super.SetVerticalPosition(y); } SetRightLabel(text) { return this; } SetRightBadge(badge) { return this; } Draw() { super.Draw(); const caption = this.Collection.length >= this.Index ? this.Collection[this.Index].DisplayText : " "; const offset = this._currentOffset; this._itemText.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._itemText.Caption = caption; this._arrowLeft.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._arrowRight.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._arrowLeft.Pos = new Point(380 - offset + this.Offset.X + this.Parent.WidthOffset, this._arrowLeft.Pos.Y); if (this.Selected) { this._arrowLeft.Draw(); this._arrowRight.Draw(); this._itemText.Pos = new Point(405 + this.Offset.X + this.Parent.WidthOffset, this._itemText.Pos.Y); } else { this._itemText.Pos = new Point(420 + this.Offset.X + this.Parent.WidthOffset, this._itemText.Pos.Y); } this._itemText.Draw(); } } Number.isInteger = Number.isInteger || function (value) { return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; }; const fixFloat = (n) => { return Number.isInteger(n) ? n : parseFloat(n.toFixed(10)); }; class UIMenuAutoListItem extends UIMenuItem { constructor(text, description = "", lowerThreshold = 0, upperThreshold = 10, startValue = 0, data = null) { super(text, description, data); this._currentOffset = 0; this._leftMoveThreshold = 1; this._rightMoveThreshold = 1; this._lowerThreshold = 0; this._upperThreshold = 10; this._preCaptionText = ''; this._postCaptionText = ''; let y = 0; this.LowerThreshold = lowerThreshold; this.UpperThreshold = lowerThreshold > upperThreshold ? lowerThreshold : upperThreshold; this.SelectedValue = (startValue < lowerThreshold || startValue > upperThreshold) ? lowerThreshold : startValue; this._arrowLeft = new Sprite("commonmenu", "arrowleft", new Point(110, 105 + y), new Size(30, 30)); this._arrowRight = new Sprite("commonmenu", "arrowright", new Point(280, 105 + y), new Size(30, 30)); this._itemText = new ResText("", new Point(290, y + 104), 0.35, Color.White, Font$1.ChaletLondon, Alignment$1.Right); } get PreCaptionText() { return this._preCaptionText; } set PreCaptionText(text) { if (!text) throw new Error("The pre caption text can't be null"); if (typeof text !== 'string') throw new Error("The pre caption text must be a string"); this._preCaptionText = text; this._currentOffset = Screen.GetTextWidth(this.PreCaptionText + this._selectedValue.toString() + this.PostCaptionText, this._itemText && this._itemText.Font ? this._itemText.Font : 0, 0.35); } get PostCaptionText() { return this._postCaptionText; } set PostCaptionText(text) { if (!text) throw new Error("The post caption text can't be null"); if (typeof text !== 'string') throw new Error("The post caption text must be a string"); this._postCaptionText = text; this._currentOffset = Screen.GetTextWidth(this.PreCaptionText + this._selectedValue.toString() + this.PostCaptionText, this._itemText && this._itemText.Font ? this._itemText.Font : 0, 0.35); } get LeftMoveThreshold() { return this._leftMoveThreshold; } set LeftMoveThreshold(value) { if (!value) throw new Error("The left threshold can't be null"); this._leftMoveThreshold = value; } get RightMoveThreshold() { return this._rightMoveThreshold; } set RightMoveThreshold(value) { if (!value) throw new Error("The right threshold can't be null"); this._rightMoveThreshold = value; } get LowerThreshold() { return this._lowerThreshold; } set LowerThreshold(value) { if (typeof value !== 'number' && !value) throw new Error("The lower threshold can't be null"); this._lowerThreshold = value; if (this.SelectedValue < value) { this.SelectedValue = value; } } get UpperThreshold() { return this._upperThreshold; } set UpperThreshold(value) { if (typeof value !== 'number' && !value) throw new Error("The upper threshold can't be null"); this._upperThreshold = value; if (this.SelectedValue > value) { this.SelectedValue = value; } } get SelectedValue() { return this._selectedValue; } set SelectedValue(value) { if (value < this._lowerThreshold || value > this._upperThreshold) throw new Error("The value can not be outside the lower or upper limits"); this._selectedValue = fixFloat(value); this._currentOffset = Screen.GetTextWidth(this.PreCaptionText + this._selectedValue.toString() + this.PostCaptionText, this._itemText && this._itemText.Font ? this._itemText.Font : 0, this._itemText && this._itemText.Scale ? this._itemText.Scale : 0.35); } SetVerticalPosition(y) { this._arrowLeft.Pos = new Point(300 + this.Offset.X + this.Parent.WidthOffset, 147 + y + this.Offset.Y); this._arrowRight.Pos = new Point(400 + this.Offset.X + this.Parent.WidthOffset, 147 + y + this.Offset.Y); this._itemText.Pos = new Point(300 + this.Offset.X + this.Parent.WidthOffset, y + 147 + this.Offset.Y); super.SetVerticalPosition(y); } SetRightLabel(text) { return this; } SetRightBadge(badge) { return this; } Draw() { super.Draw(); const offset = this._currentOffset; this._itemText.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._itemText.Caption = this.PreCaptionText + this._selectedValue + this.PostCaptionText; this._arrowLeft.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._arrowRight.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._arrowLeft.Pos = new Point(380 - offset + this.Offset.X + this.Parent.WidthOffset, this._arrowLeft.Pos.Y); if (this.Selected) { this._arrowLeft.Draw(); this._arrowRight.Draw(); this._itemText.Pos = new Point(405 + this.Offset.X + this.Parent.WidthOffset, this._itemText.Pos.Y); } else { this._itemText.Pos = new Point(420 + this.Offset.X + this.Parent.WidthOffset, this._itemText.Pos.Y); } this._itemText.Draw(); } } class UIMenuSliderItem extends UIMenuItem { constructor(text, items, index, description = "", divider = false, data = null) { super(text, description, data); const y = 0; this._items = items; this._arrowLeft = new Sprite("commonmenutu", "arrowleft", new Point(0, 105 + y), new Size(15, 15)); this._arrowRight = new Sprite("commonmenutu", "arrowright", new Point(0, 105 + y), new Size(15, 15)); this._rectangleBackground = new ResRectangle(new Point(0, 0), new Size(150, 9), new Color(4, 32, 57, 255)); this._rectangleSlider = new ResRectangle(new Point(0, 0), new Size(75, 9), new Color(57, 116, 200, 255)); if (divider) { this._rectangleDivider = new ResRectangle(new Point(0, 0), new Size(2.5, 20), Color.WhiteSmoke); } else { this._rectangleDivider = new ResRectangle(new Point(0, 0), new Size(2.5, 20), Color.Transparent); } this.Index = index; } get Index() { return this._index % this._items.length; } set Index(value) { this._index = 100000000 - (100000000 % this._items.length) + value; } SetVerticalPosition(y) { this._rectangleBackground.Pos = new Point(250 + this.Offset.X + this.Parent.WidthOffset, y + 158.5 + this.Offset.Y); this._rectangleSlider.Pos = new Point(250 + this.Offset.X + this.Parent.WidthOffset, y + 158.5 + this.Offset.Y); this._rectangleDivider.Pos = new Point(323.5 + this.Offset.X + this.Parent.WidthOffset, y + 153 + this.Offset.Y); this._arrowLeft.Pos = new Point(235 + this.Offset.X + this.Parent.WidthOffset, 155.5 + y + this.Offset.Y); this._arrowRight.Pos = new Point(400 + this.Offset.X + this.Parent.WidthOffset, 155.5 + y + this.Offset.Y); super.SetVerticalPosition(y); } IndexToItem(index) { return this._items[index]; } Draw() { super.Draw(); this._arrowLeft.Color = this.Enabled ? this.Selected ? Color.Black : Color.WhiteSmoke : new Color(163, 159, 148); this._arrowRight.Color = this.Enabled ? this.Selected ? Color.Black : Color.WhiteSmoke : new Color(163, 159, 148); let offset = ((this._rectangleBackground.Size.Width - this._rectangleSlider.Size.Width) / (this._items.length - 1)) * this.Index; this._rectangleSlider.Pos = new Point(250 + this.Offset.X + offset + +this.Parent.WidthOffset, this._rectangleSlider.Pos.Y); if (this.Selected) { this._arrowLeft.Draw(); this._arrowRight.Draw(); } this._rectangleBackground.Draw(); this._rectangleSlider.Draw(); this._rectangleDivider.Draw(); } SetRightBadge(badge) { } SetRightLabel(text) { } } class Container extends Rectangle { constructor(pos, size, color) { super(pos, size, color); this.Items = []; } addItem(item) { this.Items.push(item); } Draw(offset) { if (!this.Enabled) return; offset = offset || new Size(); const screenw = Screen.Width; const screenh = Screen.Height; const height = 1080.0; const ratio = screenw / screenh; const width = height * ratio; const w = this.Size.Width / width; const h = this.Size.Height / height; const x = (this.Pos.X + offset.Width) / width + w * 0.5; const y = (this.Pos.Y + offset.Height) / height + h * 0.5; game__default.drawRect(x, y, w, h, this.Color.R, this.Color.G, this.Color.B, this.Color.A, false); for (var item of this.Items) item.Draw(new Size(this.Pos.X + offset.Width, this.Pos.Y + offset.Height)); } } class Common { static PlaySound(audioName, audioRef) { game__default.playSound(-1, audioName, audioRef, false, 0, true); } } class LiteEvent { constructor() { this.handlers = []; } on(handler) { this.handlers.push(handler); } off(handler) { this.handlers = this.handlers.filter(h => h !== handler); } emit(...args) { this.handlers.slice(0).forEach(h => h(...args)); } expose() { return this; } count() { return this.handlers.length; } } class InstructionalButton { constructor(text, control, buttonString = null) { this._itemBind = null; this.Text = text; this._buttonControl = control; this._usingControls = buttonString == null; this._buttonString = buttonString; } get ItemBind() { return this._itemBind; } BindToItem(item) { this._itemBind = item; } GetButtonId() { return this._usingControls ? game__default.getControlInstructionalButton(2, this._buttonControl, false) : "t_" + this._buttonString; } } class Scaleform { constructor(scaleForm) { this._handle = 0; this.scaleForm = scaleForm; this._handle = requestScaleformMovie(this.scaleForm); } get handle() { return this._handle; } get isValid() { return this._handle != 0; } get isLoaded() { return hasScaleformMovieLoaded(this._handle); } callFunctionHead(funcName, ...args) { if (!this.isValid || !this.isLoaded) return; beginScaleformMovieMethod(this._handle, funcName); args.forEach((arg) => { switch (typeof arg) { case "number": { if (Number(arg) === arg && arg % 1 !== 0) { scaleformMovieMethodAddParamFloat(arg); } else { scaleformMovieMethodAddParamInt(arg); } } case "string": { scaleformMovieMethodAddParamPlayerNameString(arg); break; } case "boolean": { scaleformMovieMethodAddParamBool(arg); break; } default: { logError(`Unknown argument type ${typeof arg} = ${arg.toString()} passed to scaleform with handle ${this._handle}`); } } }); } callFunction(funcName, ...args) { this.callFunctionHead(funcName, ...args); endScaleformMovieMethod(); } callFunctionReturn(funcName, ...args) { this.callFunctionHead(funcName, ...args); return endScaleformMovieMethodReturnValue(); } render2D() { if (!this.isValid || !this.isLoaded) return; drawScaleformMovieFullscreen(this._handle, 255, 255, 255, 255, 0); } recreate() { if (!this.isValid || !this.isLoaded) return; setScaleformMovieAsNoLongerNeeded(this._handle); this._handle = requestScaleformMovie(this.scaleForm); } destroy() { if (!this.isValid) return; setScaleformMovieAsNoLongerNeeded(this._handle); this._handle = 0; } } class Message { static Initialize(scaleForm, transitionOutAnimName) { this._transitionOutAnimName = transitionOutAnimName; this._scaleform = new Scaleform(scaleForm); } static get IsVisible() { return this._messageVisible; } static get Scaleform() { return this._scaleform; } static Load() { if (this._delayedTransitionInTimeout != null) { clearTimeout(this._delayedTransitionInTimeout); this._delayedTransitionInTimeout = null; } } static SetDelayedTransition(messageHandler, time) { this._delayedTransitionInTimeout = setTimeout(() => { this._delayedTransitionInTimeout = null; this.TransitionIn(messageHandler, time); }, this._transitionOutTimeMs); } static ShowCustomShard(funcName, time = 5000, ...funcArgs) { this.ShowComplexCustomShard(() => { this._scaleform.callFunction(funcName, ...funcArgs); }, time); } static ShowComplexCustomShard(messageHandler, time = 5000) { this.Load(); if (this._messageVisible) { this.TransitionOut(); this.SetDelayedTransition(() => messageHandler(), time); } else { this.TransitionIn(messageHandler, time); } } static TransitionOut() { if (!this._messageVisible) return; if (this._transitionOutTimeout != null) { clearTimeout(this._transitionOutTimeout); this._transitionOutTimeout = null; } if (this._transitionOutFinishedTimeout != null) { clearTimeout(this._transitionOutFinishedTimeout); this._transitionOutFinishedTimeout = null; } this._scaleform.callFunction(this._transitionOutAnimName); this._transitionOutFinishedTimeout = setTimeout(() => { this._messageVisible = false; this._scaleform.recreate(); }, this._transitionOutTimeMs); } static TransitionIn(messageHandler, transitionOutTime = 500) { this._messageVisible = true; messageHandler(); this.SetTransitionOutTimer(transitionOutTime); } static SetTransitionOutTimer(time) { this._transitionOutTimeout = setTimeout(() => { this._transitionOutTimeout = null; this.TransitionOut(); }, time); } static Render() { if (this._messageVisible) { this._scaleform.render2D(); } } } Message._messageVisible = false; Message._transitionOutTimeout = null; Message._transitionOutFinishedTimeout = null; Message._delayedTransitionInTimeout = null; Message._scaleform = null; Message._transitionOutTimeMs = 500; Message._transitionOutAnimName = null; class BigMessage extends Message { static Initialize(scaleForm, transitionOutAnimName) { super.Initialize(scaleForm, transitionOutAnimName); everyTick(() => this.Render()); } static ShowMissionPassedMessage(msg, subtitle = "", time = 5000) { this.ShowCustomShard("SHOW_MISSION_PASSED_MESSAGE", time, msg, subtitle, 100, true, 0, true); } static ShowColoredShard(msg, desc, textColor, bgColor, time = 5000) { this.ShowCustomShard("SHOW_SHARD_CENTERED_MP_MESSAGE", time, msg, desc, bgColor, textColor); } static ShowOldMessage(msg, time = 5000) { this.ShowCustomShard("SHOW_MISSION_PASSED_MESSAGE", time, msg); } static ShowSimpleShard(title, subtitle = "", time = 5000) { this.ShowCustomShard("SHOW_SHARD_CREW_RANKUP_MP_MESSAGE", time, title, subtitle); } static ShowRankupMessage(msg, subtitle, rank, time = 5000) { this.ShowCustomShard("SHOW_BIG_MP_MESSAGE", time, msg, subtitle, rank, "", ""); } static ShowPlaneMessage(title, planeName, planeHash, time = 5000) { this.ShowCustomShard("SHOW_PLANE_MESSAGE", time, title, planeName, planeHash, "", ""); } static ShowWeaponPurchasedMessage(bigMessage, weaponName, weaponHash, time = 5000) { this.ShowCustomShard("SHOW_WEAPON_PURCHASED", time, bigMessage, weaponName, weaponHash, "", 100); } static ShowWastedMessage(title, message, color, darkenBackground, time = 5000) { this.ShowCustomShard("SHOW_SHARD_WASTED_MP_MESSAGE", time, title, message, color, darkenBackground); } static ShowMpMessageLarge(msg, subtitle = "", time = 5000) { this.ShowComplexCustomShard(() => { this.Scaleform.callFunction("SHOW_CENTERED_MP_MESSAGE_LARGE", msg, subtitle, 100, true, 100); this.Scaleform.callFunction("TRANSITION_IN"); }, time); } } BigMessage.Initialize("MP_BIG_MESSAGE_FREEMODE", "TRANSITION_OUT"); class MidsizedMessage extends Message { static Initialize(scaleForm, transitionOutAnimName) { super.Initialize(scaleForm, transitionOutAnimName); everyTick(() => this.Render()); } static ShowMidsizedMessage(title, message = "", time = 5000) { this.ShowCustomShard("SHOW_MIDSIZED_MESSAGE", time, title, message); } static ShowBridgesKnivesProgress(title, totalToDo, message, info, completed, time = 5000) { this.ShowCustomShard("SHOW_BRIDGES_KNIVES_PROGRESS", time, title, totalToDo, message, info, completed); } static ShowCondensedShardMessage(title, message, bgColor, useDarkerShard, time = 5000) { this.ShowCustomShard("SHOW_COND_SHARD_MESSAGE", time, title, message, bgColor, useDarkerShard); } static ShowMidsizedShardMessage(title, message, bgColor, useDarkerShard, useCondensedShard, time = 5000) { this.ShowCustomShard("SHOW_SHARD_MIDSIZED_MESSAGE", time, title, message, bgColor, useDarkerShard, useCondensedShard); } } MidsizedMessage.Initialize("MIDSIZED_MESSAGE", "SHARD_ANIM_OUT"); class UIMenuDynamicListItem extends UIMenuItem { constructor(text, selectionChangeHandler, description = "", selectedStartValueHandler = null, data = null) { super(text, description, data); this._currentOffset = 0; this._precaptionText = ''; this._selectedStartValueHandler = null; this.SelectionChangeHandler = null; if (!this.isVariableFunction(selectionChangeHandler)) { logError(`[UIMenuDynamicListItem] ${text} is not created with a valid selectionChangeHandler, needs to be function. Please see docs.`); } if (!this.isVariableFunction(selectedStartValueHandler)) { logError(`[UIMenuDynamicListItem] ${text} is not created with a valid selectedStartValueHandler, needs to be function. Please see docs.`); } this.SelectionChangeHandler = selectionChangeHandler; this._selectedStartValueHandler = selectedStartValueHandler; let y = 0; this._arrowLeft = new Sprite("commonmenu", "arrowleft", new Point(110, 105 + y), new Size(30, 30)); this._arrowRight = new Sprite("commonmenu", "arrowright", new Point(280, 105 + y), new Size(30, 30)); this._itemText = new ResText("", new Point(290, y + 104), 0.35, Color.White, Font$1.ChaletLondon, Alignment$1.Right); } SelectionChangeHandlerPromise(item, selectedValue, changeDirection) { return new Promise((resolve, reject) => { let newSelectedValue = this.SelectionChangeHandler(item, selectedValue, changeDirection); resolve(newSelectedValue); }); } get PreCaptionText() { return this._precaptionText; } set PreCaptionText(text) { if (!text) throw new Error("The pre caption text can't be null"); if (typeof text !== 'string') throw new Error("The pre caption text must be a string"); this._precaptionText = text; this._currentOffset = Screen.GetTextWidth(this.PreCaptionText + this._selectedValue, this._itemText && this._itemText.Font ? this._itemText.Font : 0, 0.35); } get SelectedValue() { return this._selectedValue; } set SelectedValue(value) { this._selectedValue = value; if (value == undefined) return; this._currentOffset = Screen.GetTextWidth(this.PreCaptionText + this._selectedValue, this._itemText && this._itemText.Font ? this._itemText.Font : 0, this._itemText && this._itemText.Scale ? this._itemText.Scale : 0.35); } SetVerticalPosition(y) { this._arrowLeft.Pos = new Point(300 + this.Offset.X + this.Parent.WidthOffset, 147 + y + this.Offset.Y); this._arrowRight.Pos = new Point(400 + this.Offset.X + this.Parent.WidthOffset, 147 + y + this.Offset.Y); this._itemText.Pos = new Point(300 + this.Offset.X + this.Parent.WidthOffset, y + 147 + this.Offset.Y); super.SetVerticalPosition(y); } SetRightLabel(text) { return this; } SetRightBadge(badge) { return this; } Draw() { super.Draw(); if (this._selectedValue == undefined) { if (this._selectedStartValueHandler != null) { this.SelectedValue = this._selectedStartValueHandler(); } else { this._selectedValue = ""; } } const offset = this._currentOffset; this._itemText.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._itemText.Caption = this.PreCaptionText + this._selectedValue; this._arrowLeft.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._arrowRight.Color = this.Enabled ? this.Selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148); this._arrowLeft.Pos = new Point(380 - offset + this.Offset.X + this.Parent.WidthOffset, this._arrowLeft.Pos.Y); if (this.Selected) { this._arrowLeft.Draw(); this._arrowRight.Draw(); this._itemText.Pos = new Point(405 + this.Offset.X + this.Parent.WidthOffset, this._itemText.Pos.Y); } else { this._itemText.Pos = new Point(420 + this.Offset.X + this.Parent.WidthOffset, this._itemText.Pos.Y); } this._itemText.Draw(); } isVariableFunction(functionToCheck) { return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'; } } let menuPool = []; class NativeUI { constructor(title, subtitle, offset, spriteLibrary, spriteName) { this._visible = true; this._counterPretext = ""; this._counterOverride = undefined; this._lastUpDownNavigation = 0; this._lastLeftRightNavigation = 0; this._extraOffset = 0; this._buttonsEnabled = true; this._justOpened = true; this._justOpenedFromPool = false; this._justClosedFromPool = false; this._poolOpening = null; this._safezoneOffset = new Point(0, 0); this._activeItem = 1000; this._maxItemsOnScreen = 9; this._maxItem = this._maxItemsOnScreen; this._mouseEdgeEnabled = true; this._bannerSprite = null; this._bannerRectangle = null; this._recalculateDescriptionNextFrame = 1; this._instructionalButtons = []; this._defaultTitleScale = 1.15; this._maxMenuItems = 1000; this.Id = UUIDV4(); this.SelectTextLocalized = getGxtText("HUD_INPUT2"); this.BackTextLocalized = getGxtText("HUD_INPUT3"); this.WidthOffset = 0; this.ParentMenu = null; this.ParentItem = null; this.MouseControlsEnabled = false; this.CloseableByUser = true; this.AUDIO_LIBRARY = "HUD_FRONTEND_DEFAULT_SOUNDSET"; this.AUDIO_UPDOWN = "NAV_UP_DOWN"; this.AUDIO_LEFTRIGHT = "NAV_LEFT_RIGHT"; this.AUDIO_SELECT = "SELECT"; this.AUDIO_BACK = "BACK"; this.AUDIO_ERROR = "ERROR"; this.MenuItems = []; this.IndexChange = new LiteEvent(); this.ListChange = new LiteEvent(); this.AutoListChange = new LiteEvent(); this.DynamicListChange = new LiteEvent(); this.SliderChange = new LiteEvent(); this.CheckboxChange = new LiteEvent(); this.ItemSelect = new LiteEvent(); this.MenuOpen = new LiteEvent(); this.MenuClose = new LiteEvent(); this.MenuChange = new LiteEvent(); if (!(offset instanceof Point)) offset = Point.Parse(offset); this._spriteLibrary = spriteLibrary || "commonmenu"; this._spriteName = spriteName || "interaction_bgd"; this._offset = new Point(offset.X, offset.Y); this.Children = new Map(); this._instructionalButtonsScaleform = new Scaleform("instructional_buttons"); this.UpdateScaleform(); this._mainMenu = new Container(new Point(0, 0), new Size(700, 500), new Color(0, 0, 0, 0)); this._bannerSprite = new Sprite(this._spriteLibrary, this._spriteName, new Point(0 + this._offset.X, 0 + this._offset.Y), new Size(431, 107)); this._mainMenu.addItem((this._titleResText = new ResText(title, new Point(215 + this._offset.X, 20 + this._offset.Y), this._defaultTitleScale, new Color(255, 255, 255), 1, Alignment$1.Centered))); if (subtitle !== "") { this._mainMenu.addItem(new ResRectangle(new Point(0 + this._offset.X, 107 + this._offset.Y), new Size(431, 37), new Color(0, 0, 0, 255))); this._mainMenu.addItem((this._subtitleResText = new ResText(subtitle, new Point(8 + this._offset.X, 110 + this._offset.Y), 0.35, new Color(255, 255, 255), 0, Alignment$1.Left))); if (subtitle.startsWith("~")) { this._counterPretext = subtitle.substr(0, 3); } this._counterText = new ResText("", new Point(425 + this._offset.X, 110 + this._offset.Y), 0.35, new Color(255, 255, 255), 0, Alignment$1.Right); this._extraOffset += 37; } this._upAndDownSprite = new Sprite("commonmenu", "shop_arrows_upanddown", new Point(190 + this._offset.X, 147 + 37 * (this._maxItemsOnScreen + 1) + this._offset.Y - 37 + this._extraOffset), new Size(50, 50)); this._extraRectangleUp = new ResRectangle(new Point(0 + this._offset.X, 144 + 38 * (this._maxItemsOnScreen + 1) + this._offset.Y - 37 + this._extraOffset), new Size(431, 18), new Color(0, 0, 0, 200)); this._extraRectangleDown = new ResRectangle(new Point(0 + this._offset.X, 144 + 18 + 38 * (this._maxItemsOnScreen + 1) + this._offset.Y - 37 + this._extraOffset), new Size(431, 18), new Color(0, 0, 0, 200)); this._descriptionBar = new ResRectangle(new Point(this._offset.X, 123), new Size(431, 4), Color.Black); this._descriptionRectangle = new Sprite("commonmenu", "gradient_bgd", new Point(this._offset.X, 127), new Size(431, 30)); this._descriptionText = new ResText("", new Point(this._offset.X + 5, 125), 0.35, new Color(255, 255, 255, 255), Font$1.ChaletLondon, Alignment$1.Left); this._descriptionText.Wrap = 400; this._background = new Sprite("commonmenu", "gradient_bgd", new Point(this._offset.X, 144 + this._offset.Y - 37 + this._extraOffset), new Size(290, 25)); this._visible = false; everyTick(this.render.bind(this)); } GetSpriteBanner() { return this._bannerSprite; } GetRectangleBanner() { return this._bannerRectangle; } GetTitle() { return this._titleResText; } get MaxItemsVisible() { return this._maxItemsOnScreen; } set MaxItemsVisible(value) { this._maxItemsOnScreen = value; this._maxItem = value; } get Title() { return this._titleResText.Caption; } set Title(text) { this._titleResText.Caption = text; } get GetSubTitle() { return this._titleResText; } get SubTitle() { return this._titleResText.Caption; } set SubTitle(text) { this._subtitleResText.Caption = text; } get Visible() { return this._visible; } set Visible(toggle) { this._visible = toggle; Common.PlaySound(this.AUDIO_BACK, this.AUDIO_LIBRARY); this.UpdateScaleform(); if (toggle) { this.UpdateDescriptionCaption(); } if (this._justOpenedFromPool === true) { this._justOpenedFromPool = false; return; } if (toggle) { this._justOpened = true; this.MenuOpen.emit(); if (this.ParentMenu === null) { if (!menuPool.includes(this) && this !== this._poolOpening) { const previousMenu = (menuPool.length) ? menuPool[menuPool.length - 1] : null; menuPool.push(this); if (previousMenu !== this._poolOpening && previousMenu !== null) { previousMenu._justClosedFromPool = true; previousMenu.Visible = false; } } } } else { if (this._justClosedFromPool === true) { this._justClosedFromPool = false; return; } if (this.ParentMenu === null && menuPool.includes(this) && menuPool.length) { if (menuPool[menuPool.length - 1] === this) { menuPool.pop(); this._justOpenedFromPool = true; if (!menuPool.length) { this._poolOpening = null; } } if (menuPool.length) { this._poolOpening = menuPool[menuPool.length - 1]; menuPool[menuPool.length - 1].Visible = true; } } if (menuPool.length === 0) { game__default.setMouseCursorSprite(1); } } } get CurrentSelection() { return this._activeItem % this.MenuItems.length; } set CurrentSelection(v) { this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem = this._maxMenuItems - (this._maxMenuItems % this.MenuItems.length) + v; if (this.CurrentSelection > this._maxItem) { this._maxItem = this.CurrentSelection; this._minItem = this.CurrentSelection - this._maxItemsOnScreen; } else if (this.CurrentSelection < this._minItem) { this._maxItem = this._maxItemsOnScreen + this.CurrentSelection; this._minItem = this.CurrentSelection; } this.IndexChange.emit(this.CurrentSelection, this.MenuItems[this._activeItem % this.MenuItems.length]); this.UpdateDescriptionCaption(); } DisableInstructionalButtons(disable) { this._buttonsEnabled = !disable; } AddInstructionalButton(button) { this._instructionalButtons.push(button); } SetSpriteBannerType(spriteBanner) { this._bannerRectangle = null; this.AddSpriteBannerType(spriteBanner); } SetRectangleBannerType(rectangle) { this._bannerSprite = null; this._bannerRectangle = rectangle; this._bannerRectangle.Pos = new Point(this._offset.X, this._offset.Y); this._bannerRectangle.Size = new Size(431 + this.WidthOffset, 107); } AddSpriteBannerType(spriteBanner) { this._bannerSprite = spriteBanner; this._bannerSprite.Size = new Size(431 + this.WidthOffset, 107); this._bannerSprite.Pos = new Point(this._offset.X, this._offset.Y); } SetNoBannerType() { this._bannerSprite = null; this._bannerRectangle = new ResRectangle(new Point(this._offset.X, this._offset.Y), new Size(431 + this.WidthOffset, 107), new Color(0, 0, 0, 0)); } RemoveInstructionalButton(button) { for (let i = 0; i < this._instructionalButtons.length; i++) { if (this._instructionalButtons[i] === button) { this._instructionalButtons.splice(i, 1); } } } RecalculateDescriptionPosition() { const count = (this.MenuItems.length > this._maxItemsOnScreen + 1) ? this._maxItemsOnScreen + 2 : this.MenuItems.length; this._descriptionBar.Size = new Size(431 + this.WidthOffset, 4); this._descriptionRectangle.Size = new Size(431 + this.WidthOffset, 30); this._descriptionBar.Pos = new Point(this._offset.X, 149 - 37 + this._extraOffset + this._offset.Y); this._descriptionRectangle.Pos = new Point(this._offset.X, 149 - 37 + this._extraOffset + this._offset.Y); this._descriptionText.Pos = new Point(this._offset.X + 8, 155 - 37 + this._extraOffset + this._offset.Y); this._descriptionBar.Pos = new Point(this._offset.X, 38 * count + this._descriptionBar.Pos.Y); this._descriptionRectangle.Pos = new Point(this._offset.X, 38 * count + this._descriptionRectangle.Pos.Y); this._descriptionText.Pos = new Point(this._offset.X + 8, 38 * count + this._descriptionText.Pos.Y); } SetMenuWidthOffset(widthOffset) { this.WidthOffset = widthOffset; if (this._bannerSprite != null) { this._bannerSprite.Size = new Size(431 + this.WidthOffset, 107); } this._mainMenu.Items[0].pos = new Point((this.WidthOffset + this._offset.X + 431) / 2, 20 + this._offset.Y); if (this._counterText) { this._counterText.Pos = new Point(425 + this._offset.X + widthOffset, 110 + this._offset.Y); } if (this._mainMenu.Items.length >= 2) { const tmp = this._mainMenu.Items[1]; tmp.size = new Size(431 + this.WidthOffset, 37); } if (this._bannerRectangle != null) { this._bannerRectangle.Size = new Size(431 + this.WidthOffset, 107); } } AddItem(item) { if (this._justOpened) this._justOpened = false; item.Offset = this._offset; item.Parent = this; item.SetVerticalPosition(this.MenuItems.length * 25 - 37 + this._extraOffset); this.MenuItems.push(item); this.RefreshIndex(); } RemoveItem(item) { for (let i = 0; i < this.MenuItems.length; i++) { if (this.MenuItems[i] === item) { this.MenuItems.splice(i, 1); break; } } this.RefreshIndex(); } RefreshIndex() { if (this.MenuItems.length == 0) { this._activeItem = this._maxMenuItems; this._maxItem = this._maxItemsOnScreen; this._minItem = 0; return; } for (let i = 0; i < this.MenuItems.length; i++) this.MenuItems[i].Selected = false; this._activeItem = this._maxMenuItems - (this._maxMenuItems % this.MenuItems.length); this._maxItem = this._maxItemsOnScreen; this._minItem = 0; if (this._visible) { this.UpdateDescriptionCaption(); } } Clear() { this.MenuItems = []; this.RecalculateDescriptionPosition(); } Open() { this.Visible = true; } CleanUp(closeChildren = false) { if (closeChildren) { this.Children.forEach(m => { m.Close(true); }); } this.MenuItems.filter(menuItem => menuItem instanceof UIMenuDynamicListItem).forEach((menuItem) => { menuItem.SelectedValue = undefined; }); this.RefreshIndex(); } Close(closeChildren = false) { this.Visible = false; this.CleanUp(closeChildren); this.MenuClose.emit(true); } GoLeft() { if (!(this.MenuItems[this.CurrentSelection] instanceof UIMenuListItem) && !(this.MenuItems[this.CurrentSelection] instanceof UIMenuAutoListItem) && !(this.MenuItems[this.CurrentSelection] instanceof UIMenuDynamicListItem) && !(this.MenuItems[this.CurrentSelection] instanceof UIMenuSliderItem) || !this.MenuItems[this.CurrentSelection].Enabled) return; if (this.MenuItems[this.CurrentSelection] instanceof UIMenuListItem) { const it = this.MenuItems[this.CurrentSelection]; if (it.Collection.length == 0) return; it.Index--; Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.ListChange.emit(it, it.Index); this.UpdateDescriptionCaption(); } else if (this.MenuItems[this.CurrentSelection] instanceof UIMenuAutoListItem) { const it = this.MenuItems[this.CurrentSelection]; if (it.SelectedValue <= it.LowerThreshold) { it.SelectedValue = it.UpperThreshold; } else { it.SelectedValue -= it.LeftMoveThreshold; } Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.AutoListChange.emit(it, it.SelectedValue, ChangeDirection$1.Left); this.UpdateDescriptionCaption(); } else if (this.MenuItems[this.CurrentSelection] instanceof UIMenuDynamicListItem) { const it = this.MenuItems[this.CurrentSelection]; it.SelectionChangeHandlerPromise(it, it.SelectedValue, ChangeDirection$1.Left).then((newSelectedValue) => { it.SelectedValue = newSelectedValue; this.DynamicListChange.emit(it, it.SelectedValue, ChangeDirection$1.Left); }); Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.UpdateDescriptionCaption(); } else if (this.MenuItems[this.CurrentSelection] instanceof UIMenuSliderItem) { const it = this.MenuItems[this.CurrentSelection]; it.Index = it.Index - 1; Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.SliderChange.emit(it, it.Index, it.IndexToItem(it.Index)); this.UpdateDescriptionCaption(); } } GoRight() { if (!(this.MenuItems[this.CurrentSelection] instanceof UIMenuListItem) && !(this.MenuItems[this.CurrentSelection] instanceof UIMenuAutoListItem) && !(this.MenuItems[this.CurrentSelection] instanceof UIMenuDynamicListItem) && !(this.MenuItems[this.CurrentSelection] instanceof UIMenuSliderItem) || !this.MenuItems[this.CurrentSelection].Enabled) return; if (this.MenuItems[this.CurrentSelection] instanceof UIMenuListItem) { const it = this.MenuItems[this.CurrentSelection]; if (it.Collection.length == 0) return; it.Index++; Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.ListChange.emit(it, it.Index); this.UpdateDescriptionCaption(); } else if (this.MenuItems[this.CurrentSelection] instanceof UIMenuAutoListItem) { const it = this.MenuItems[this.CurrentSelection]; if (it.SelectedValue >= it.UpperThreshold) { it.SelectedValue = it.LowerThreshold; } else { it.SelectedValue += it.RightMoveThreshold; } Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.AutoListChange.emit(it, it.SelectedValue, ChangeDirection$1.Right); this.UpdateDescriptionCaption(); } else if (this.MenuItems[this.CurrentSelection] instanceof UIMenuDynamicListItem) { const it = this.MenuItems[this.CurrentSelection]; it.SelectionChangeHandlerPromise(it, it.SelectedValue, ChangeDirection$1.Right).then((newSelectedValue) => { it.SelectedValue = newSelectedValue; this.DynamicListChange.emit(it, it.SelectedValue, ChangeDirection$1.Right); }); Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.UpdateDescriptionCaption(); } else if (this.MenuItems[this.CurrentSelection] instanceof UIMenuSliderItem) { const it = this.MenuItems[this.CurrentSelection]; it.Index++; Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.SliderChange.emit(it, it.Index, it.IndexToItem(it.Index)); this.UpdateDescriptionCaption(); } } SelectItem() { if (!this.MenuItems[this.CurrentSelection].Enabled) { Common.PlaySound(this.AUDIO_ERROR, this.AUDIO_LIBRARY); return; } const it = this.MenuItems[this.CurrentSelection]; if (this.MenuItems[this.CurrentSelection] instanceof UIMenuCheckboxItem) { it.Checked = !it.Checked; Common.PlaySound(this.AUDIO_SELECT, this.AUDIO_LIBRARY); this.CheckboxChange.emit(it, it.Checked); } else { Common.PlaySound(this.AUDIO_SELECT, this.AUDIO_LIBRARY); this.ItemSelect.emit(it, this.CurrentSelection); if (this.Children.has(it.Id)) { const subMenu = this.Children.get(it.Id); this.Visible = false; subMenu.Visible = true; this.MenuChange.emit(subMenu, true); } } it.fireEvent(); } HasCurrentSelectionChildren() { const it = this.MenuItems[this.CurrentSelection]; if (this.MenuItems[this.CurrentSelection] instanceof UIMenuItem) { if (this.Children.has(it.Id)) { return true; } } return false; } IsMouseInListItemArrows(item, topLeft, safezone) { game__default.beginTextCommandGetWidth("jamyfafi"); game__default.addTextComponentSubstringPlayerName(item.Text); let res = Screen.ResolutionMaintainRatio; let screenw = res.Width; let screenh = res.Height; const height = 1080.0; const ratio = screenw / screenh; let width = height * ratio; const labelSize = game__default.endTextCommandGetWidth(false) * width * 0.35; const labelSizeX = 5 + labelSize + 10; const arrowSizeX = 431 - labelSizeX; return Screen.IsMouseInBounds(topLeft, new Size(labelSizeX, 38)) ? 1 : Screen.IsMouseInBounds(new Point(topLeft.X + labelSizeX, topLeft.Y), new Size(arrowSizeX, 38)) ? 2 : 0; } ProcessMouse() { if (!this.Visible || this._justOpened || this.MenuItems.length == 0 || !this.MouseControlsEnabled) { this.MenuItems.filter(i => i.Hovered).forEach(i => (i.Hovered = false)); return; } showCursor(true); let limit = this.MenuItems.length - 1; let counter = 0; if (this.MenuItems.length > this._maxItemsOnScreen + 1) limit = this._maxItem; if (Screen.IsMouseInBounds(new Point(0, 0), new Size(30, 1080)) && this._mouseEdgeEnabled) { game__default.setGameplayCamRelativeHeading(game__default.getGameplayCamRelativeHeading() + 5.0); game__default.setMouseCursorSprite(6); } else if (Screen.IsMouseInBounds(new Point(Screen.ResolutionMaintainRatio.Width - 30.0, 0), new Size(30, 1080)) && this._mouseEdgeEnabled) { game__default.setGameplayCamRelativeHeading(game__default.getGameplayCamRelativeHeading() - 5.0); game__default.setMouseCursorSprite(7); } else if (this._mouseEdgeEnabled) { game__default.setMouseCursorSprite(1); } for (let i = this._minItem; i <= limit; i++) { let xpos = this._offset.X; let ypos = this._offset.Y + 144 - 37 + this._extraOffset + counter * 38; let xsize = 431 + this.WidthOffset; const ysize = 38; const uiMenuItem = this.MenuItems[i]; if (Screen.IsMouseInBounds(new Point(xpos, ypos), new Size(xsize, ysize))) { uiMenuItem.Hovered = true; const res = this.IsMouseInListItemArrows(this.MenuItems[i], new Point(xpos, ypos), 0); if (uiMenuItem.Hovered && res == 1 && (this.MenuItems[i] instanceof UIMenuListItem || this.MenuItems[i] instanceof UIMenuAutoListItem || this.MenuItems[i] instanceof UIMenuDynamicListItem)) { game__default.setMouseCursorSprite(5); } if (game__default.isControlJustReleased(0, 24) || game__default.isDisabledControlJustReleased(0, 24)) if (uiMenuItem.Selected && uiMenuItem.Enabled) { if ((this.MenuItems[i] instanceof UIMenuListItem || this.MenuItems[i] instanceof UIMenuAutoListItem || this.MenuItems[i] instanceof UIMenuDynamicListItem) && this.IsMouseInListItemArrows(this.MenuItems[i], new Point(xpos, ypos), 0) > 0) { switch (res) { case 1: Common.PlaySound(this.AUDIO_SELECT, this.AUDIO_LIBRARY); this.MenuItems[i].fireEvent(); this.ItemSelect.emit(this.MenuItems[i], i); break; case 2: let it = this.MenuItems[i]; if ((it.Collection == null ? it.Items.Count : it.Collection.Count) > 0) { it.Index++; Common.PlaySound(this.AUDIO_LEFTRIGHT, this.AUDIO_LIBRARY); this.ListChange.emit(it, it.Index); } break; } } else this.SelectItem(); } else if (!uiMenuItem.Selected) { this.CurrentSelection = i; Common.PlaySound(this.AUDIO_UPDOWN, this.AUDIO_LIBRARY); this.IndexChange.emit(this.CurrentSelection, this.MenuItems[this._activeItem % this.MenuItems.length]); this.SelectItem(); this.UpdateDescriptionCaption(); this.UpdateScaleform(); } else if (!uiMenuItem.Enabled && uiMenuItem.Selected) { Common.PlaySound(this.AUDIO_ERROR, this.AUDIO_LIBRARY); } } else uiMenuItem.Hovered = false; counter++; } const extraY = 144 + 38 * (this._maxItemsOnScreen + 1) + this._offset.Y - 37 + this._extraOffset + this._safezoneOffset.Y; const extraX = this._safezoneOffset.X + this._offset.X; if (this.MenuItems.length <= this._maxItemsOnScreen + 1) return; if (Screen.IsMouseInBounds(new Point(extraX, extraY), new Size(431 + this.WidthOffset, 18))) { this._extraRectangleUp.Color = new Color(30, 30, 30, 255); if (game__default.isControlJustPressed(0, 24) || game__default.isDisabledControlJustPressed(0, 24)) { if (this.MenuItems.length > this._maxItemsOnScreen + 1) this.GoUpOverflow(); else this.GoUp(); } } else this._extraRectangleUp.Color = new Color(0, 0, 0, 200); if (Screen.IsMouseInBounds(new Point(extraX, extraY + 18), new Size(431 + this.WidthOffset, 18))) { this._extraRectangleDown.Color = new Color(30, 30, 30, 255); if (game__default.isControlJustPressed(0, 24) || game__default.isDisabledControlJustPressed(0, 24)) { if (this.MenuItems.length > this._maxItemsOnScreen + 1) this.GoDownOverflow(); else this.GoDown(); } } else this._extraRectangleDown.Color = new Color(0, 0, 0, 200); } ProcessControl() { if (!this.Visible) return; if (this._justOpened) { this._justOpened = false; return; } if (game__default.isControlJustReleased(0, 177)) { this.GoBack(); } if (this.MenuItems.length == 0) return; if (game__default.isControlPressed(0, 172) && this._lastUpDownNavigation + 120 < Date.now()) { this._lastUpDownNavigation = Date.now(); if (this.MenuItems.length > this._maxItemsOnScreen + 1) this.GoUpOverflow(); else this.GoUp(); this.UpdateScaleform(); } else if (game__default.isControlJustReleased(0, 172)) { this._lastUpDownNavigation = 0; } else if (game__default.isControlPressed(0, 173) && this._lastUpDownNavigation + 120 < Date.now()) { this._lastUpDownNavigation = Date.now(); if (this.MenuItems.length > this._maxItemsOnScreen + 1) this.GoDownOverflow(); else this.GoDown(); this.UpdateScaleform(); } else if (game__default.isControlJustReleased(0, 173)) { this._lastUpDownNavigation = 0; } else if (game__default.isControlPressed(0, 174) && this._lastLeftRightNavigation + 100 < Date.now()) { this._lastLeftRightNavigation = Date.now(); this.GoLeft(); } else if (game__default.isControlJustReleased(0, 174)) { this._lastLeftRightNavigation = 0; } else if (game__default.isControlPressed(0, 175) && this._lastLeftRightNavigation + 100 < Date.now()) { this._lastLeftRightNavigation = Date.now(); this.GoRight(); } else if (game__default.isControlJustReleased(0, 175)) { this._lastLeftRightNavigation = 0; } else if (game__default.isControlJustReleased(0, 201)) { this.SelectItem(); } } GoUpOverflow() { if (this.MenuItems.length <= this._maxItemsOnScreen + 1) return; if (this._activeItem % this.MenuItems.length <= this._minItem) { if (this._activeItem % this.MenuItems.length == 0) { this._minItem = this.MenuItems.length - this._maxItemsOnScreen - 1; this._maxItem = this.MenuItems.length - 1; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem = this._maxMenuItems - (this._maxMenuItems % this.MenuItems.length); this._activeItem += this.MenuItems.length - 1; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; } else { this._minItem--; this._maxItem--; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem--; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; } } else { this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem--; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; } Common.PlaySound(this.AUDIO_UPDOWN, this.AUDIO_LIBRARY); this.IndexChange.emit(this.CurrentSelection, this.MenuItems[this._activeItem % this.MenuItems.length]); this.UpdateDescriptionCaption(); } GoUp() { if (this.MenuItems.length > this._maxItemsOnScreen + 1) return; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem--; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; Common.PlaySound(this.AUDIO_UPDOWN, this.AUDIO_LIBRARY); this.IndexChange.emit(this.CurrentSelection, this.MenuItems[this._activeItem % this.MenuItems.length]); this.UpdateDescriptionCaption(); } GoDownOverflow() { if (this.MenuItems.length <= this._maxItemsOnScreen + 1) return; if (this._activeItem % this.MenuItems.length >= this._maxItem) { if (this._activeItem % this.MenuItems.length == this.MenuItems.length - 1) { this._minItem = 0; this._maxItem = this._maxItemsOnScreen; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem = this._maxMenuItems - (this._maxMenuItems % this.MenuItems.length); this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; } else { this._minItem++; this._maxItem++; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem++; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; } } else { this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem++; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; } Common.PlaySound(this.AUDIO_UPDOWN, this.AUDIO_LIBRARY); this.IndexChange.emit(this.CurrentSelection, this.MenuItems[this._activeItem % this.MenuItems.length]); this.UpdateDescriptionCaption(); } GoDown() { if (this.MenuItems.length > this._maxItemsOnScreen + 1) return; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = false; this._activeItem++; this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; Common.PlaySound(this.AUDIO_UPDOWN, this.AUDIO_LIBRARY); this.IndexChange.emit(this.CurrentSelection, this.MenuItems[this._activeItem % this.MenuItems.length]); this.UpdateDescriptionCaption(); } GoBack() { if (this.ParentMenu != null) { this.Visible = false; this.ParentMenu.Visible = true; this.MenuChange.emit(this.ParentMenu, false); this.MenuClose.emit(false); } else if (this.CloseableByUser) { this.Visible = false; this.CleanUp(true); this.MenuClose.emit(false); } } BindMenuToItem(menuToBind, itemToBindTo) { if (!this.MenuItems.includes(itemToBindTo)) { this.AddItem(itemToBindTo); } menuToBind.ParentMenu = this; menuToBind.ParentItem = itemToBindTo; this.Children.set(itemToBindTo.Id, menuToBind); } AddSubMenu(subMenu, itemToBindTo) { this.BindMenuToItem(subMenu, itemToBindTo); } ReleaseMenuFromItem(releaseFrom) { if (!this.Children.has(releaseFrom.Id)) return false; const menu = this.Children.get(releaseFrom.Id); menu.ParentItem = null; menu.ParentMenu = null; this.Children.delete(releaseFrom.Id); return true; } UpdateDescriptionCaption() { if (this.MenuItems.length) { this._descriptionText.Caption = this.MenuItems[this._activeItem % this.MenuItems.length].Description; this._descriptionText.Wrap = 400; this._recalculateDescriptionNextFrame++; } } CalculateDescription() { if (this.MenuItems.length <= 0) return; if (this._recalculateDescriptionNextFrame > 0) { this._recalculateDescriptionNextFrame--; } this.RecalculateDescriptionPosition(); if (this.MenuItems.length > 0 && this._descriptionText.Caption && this.MenuItems[this._activeItem % this.MenuItems.length].Description.trim() !== "") { const numLines = Screen.GetLineCount(this._descriptionText.Caption, this._descriptionText.Pos, this._descriptionText.Font, this._descriptionText.Scale, this._descriptionText.Wrap); this._descriptionRectangle.Size = new Size(431 + this.WidthOffset, (numLines * 25) + 15); if (numLines === 0) { this._recalculateDescriptionNextFrame++; } } } UpdateScaleform() { if (!this.Visible || !this._buttonsEnabled) return; this._instructionalButtonsScaleform.callFunction("CLEAR_ALL"); this._instructionalButtonsScaleform.callFunction("TOGGLE_MOUSE_BUTTONS", 0); this._instructionalButtonsScaleform.callFunction("CREATE_CONTAINER"); this._instructionalButtonsScaleform.callFunction("SET_DATA_SLOT", 0, game__default.getControlInstructionalButton(2, Control$1.PhoneSelect, false), this.SelectTextLocalized); this._instructionalButtonsScaleform.callFunction("SET_DATA_SLOT", 1, game__default.getControlInstructionalButton(2, Control$1.PhoneCancel, false), this.BackTextLocalized); let count = 2; this._instructionalButtons.filter(b => b.ItemBind == null || this.MenuItems[this.CurrentSelection] == b.ItemBind).forEach((button) => { this._instructionalButtonsScaleform.callFunction("SET_DATA_SLOT", count, button.GetButtonId(), button.Text); count++; }); this._instructionalButtonsScaleform.callFunction("DRAW_INSTRUCTIONAL_BUTTONS", -1); } render() { if (!this.Visible) return; if (this._buttonsEnabled) { game__default.drawScaleformMovieFullscreen(this._instructionalButtonsScaleform.handle, 255, 255, 255, 255, 0); game__default.hideHudComponentThisFrame(6); game__default.hideHudComponentThisFrame(7); game__default.hideHudComponentThisFrame(9); } if (this._justOpened) { if (this._bannerSprite != null && !this._bannerSprite.IsTextureDictionaryLoaded) this._bannerSprite.LoadTextureDictionary(); if (!this._background.IsTextureDictionaryLoaded) this._background.LoadTextureDictionary(); if (!this._descriptionRectangle.IsTextureDictionaryLoaded) this._descriptionRectangle.LoadTextureDictionary(); if (!this._upAndDownSprite.IsTextureDictionaryLoaded) this._upAndDownSprite.LoadTextureDictionary(); if (!this._recalculateDescriptionNextFrame) this._recalculateDescriptionNextFrame++; } this._mainMenu.Draw(); this.ProcessMouse(); this.ProcessControl(); this._background.Size = this.MenuItems.length > this._maxItemsOnScreen + 1 ? new Size(431 + this.WidthOffset, 38 * (this._maxItemsOnScreen + 1)) : new Size(431 + this.WidthOffset, 38 * this.MenuItems.length); this._background.Draw(); if (this._recalculateDescriptionNextFrame) { this.CalculateDescription(); } if (this.MenuItems.length > 0) { this.MenuItems[this._activeItem % this.MenuItems.length].Selected = true; if (this.MenuItems[this._activeItem % this.MenuItems.length].Description.trim() !== "") { this._descriptionBar.Draw(); this._descriptionRectangle.Draw(); this._descriptionText.Draw(); } } let count = 0; if (this.MenuItems.length <= this._maxItemsOnScreen + 1) { for (const item of this.MenuItems) { item.SetVerticalPosition(count * 38 - 37 + this._extraOffset); item.Draw(); count++; } if (this._counterText && this._counterOverride) { this._counterText.Caption = this._counterPretext + this._counterOverride; this._counterText.Draw(); } } else { for (let index = this._minItem; index <= this._maxItem; index++) { let item = this.MenuItems[index]; item.SetVerticalPosition(count * 38 - 37 + this._extraOffset); item.Draw(); count++; } this._extraRectangleUp.Size = new Size(431 + this.WidthOffset, 18); this._extraRectangleDown.Size = new Size(431 + this.WidthOffset, 18); this._upAndDownSprite.Pos = new Point(190 + this._offset.X + this.WidthOffset / 2, 147 + 37 * (this._maxItemsOnScreen + 1) + this._offset.Y - 37 + this._extraOffset); this._extraRectangleUp.Draw(); this._extraRectangleDown.Draw(); this._upAndDownSprite.Draw(); if (this._counterText) { if (!this._counterOverride) { const cap = this.CurrentSelection + 1 + " / " + this.MenuItems.length; this._counterText.Caption = this._counterPretext + cap; } else { this._counterText.Caption = this._counterPretext + this._counterOverride; } this._counterText.Draw(); } } if (this._bannerRectangle != null) this._bannerRectangle.Draw(); if (this._bannerSprite != null) this._bannerSprite.Draw(); } } export default NativeUI; export { Alignment$1 as Alignment, BadgeStyle$1 as BadgeStyle, BigMessage, ChangeDirection$1 as ChangeDirection, Color, Control$1 as Control, Font$1 as Font, HudColor$1 as HudColor, InstructionalButton, ItemsCollection, ListItem, NativeUI as Menu, MidsizedMessage, Point, ResRectangle, Size, Sprite, UIMenuAutoListItem, UIMenuCheckboxItem, UIMenuDynamicListItem, UIMenuItem, UIMenuListItem, UIMenuSliderItem };