local G=math.rad(-80)local N=math.rad(80)local t=math.rad(15)local c=Vector2.new(math.rad(15),0)local j=Vector2.new(math.rad(45),0)local W=.1 local v=.4 local K=Vector2.new(0,0)local O=Vector3.new(0,0,0)local x=Vector3.new(0,5,0)local y=Vector3.new(0,4,0)local A=Vector3.new(0,1.5,0)local J=Vector3.new(0,1.5,0)local p=Vector3.new(0,2,0)local R=Vector3.new(0,1.5,0)local Q=Vector3.new(2,2,1)local H=0 local d=10 local r=20 local u=.5 local a=.5 local L={[Enum.HumanoidStateType.Dead]=true;[Enum.HumanoidStateType.Physics]=true}local D=require(script.Parent:WaitForChild("\067\097\109\101\114\097\085\116\105\108\115"))local w=require(script.Parent:WaitForChild("\090\111\111\109\067\111\110\116\114\111\108\108\101\114"))local g=require(script.Parent:WaitForChild("\067\097\109\101\114\097\084\111\103\103\108\101\083\116\097\116\101\067\111\110\116\114\111\108\108\101\114"))local f=require(script.Parent:WaitForChild("\067\097\109\101\114\097\073\110\112\117\116"))local U=require(script.Parent:WaitForChild("\067\097\109\101\114\097\085\073"))
-- Note: DotProduct check in CoordinateFrame::lookAt() prevents using values within about
-- 8.11 degrees of the +/- Y axis, that's why these limits are currently 80 degrees
local MIN_Y = math.rad(-80)
local MAX_Y = math.rad(80)

local VR_ANGLE = math.rad(15)
local VR_LOW_INTENSITY_ROTATION = Vector2.new(math.rad(15), 0)
local VR_HIGH_INTENSITY_ROTATION = Vector2.new(math.rad(45), 0)
local VR_LOW_INTENSITY_REPEAT = 0.1
local VR_HIGH_INTENSITY_REPEAT = 0.4

local ZERO_VECTOR2 = Vector2.new(0, 0)
local ZERO_VECTOR3 = Vector3.new(0, 0, 0)

local SEAT_OFFSET = Vector3.new(0, 5, 0)
local VR_SEAT_OFFSET = Vector3.new(0, 4, 0)
local HEAD_OFFSET = Vector3.new(0, 1.5, 0)
local R15_HEAD_OFFSET = Vector3.new(0, 1.5, 0)
local R15_HEAD_OFFSET_NO_SCALING = Vector3.new(0, 2, 0)
local DEAD_OFFSET = Vector3.new(0, 1.5, 0)
local HUMANOID_ROOT_PART_SIZE = Vector3.new(2, 2, 1)

local GAMEPAD_ZOOM_STEP_1 = 0
local GAMEPAD_ZOOM_STEP_2 = 10
local GAMEPAD_ZOOM_STEP_3 = 20

local ZOOM_SENSITIVITY_CURVATURE = 0.5
local FIRST_PERSON_DISTANCE_MIN = 0.5

local HUMANOID_STATES = {
	[Enum.HumanoidStateType.Dead] = true,
	[Enum.HumanoidStateType.Physics] = true,
}

local CameraUtils = require(script.Parent:WaitForChild("CameraUtils"))
local ZoomController = require(script.Parent:WaitForChild("ZoomController"))
local CameraToggleStateController = require(script.Parent:WaitForChild("CameraToggleStateController"))
local CameraInput = require(script.Parent:WaitForChild("CameraInput"))
local CameraUI = require(script.Parent:WaitForChild("CameraUI"))
