mirror of
https://github.com/sergeyyarkov/altv-copchase-mod.git
synced 2026-10-11 18:29:35 +03:00
2785 lines
131 KiB
JavaScript
2785 lines
131 KiB
JavaScript
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 };
|