-- __ _ _______ _ __ -- / / /\ | | |__ __| | | \ \ -- / / / \ | |_ __ ___ | | ___ ___| |__ \ \ -- < < / /\ \ | | '_ ` _ \| |/ _ \/ __| '_ \ > > -- \ \ / ____ \| | | | | | | | __/ (__| | | | / / -- \_\ /_/ \_\_|_| |_| |_|_|\___|\___|_| |_| /_/ local menu = {} local snm = Quantum.Client.Menu.GetAPI( "net" ) local theme = Quantum.Client.Menu.GetAPI( "theme" ) local fade = Quantum.Client.Menu.GetAPI( "fade" ) local resScale = Quantum.Client.ResolutionScale local sw, sh = ScrW(), ScrH() local padding = 10 * resScale local padding_s = 4 * resScale local scenes = { [1] = { fov = 60, velocity = 1, } } function menu.open( dt ) if( dt.cont.dialogueID == nil ) then return end if( !f ) then Quantum.Client.IsInMenu = true -- hide the hud -- make the cinematic start from the players pov scenes[1].pos1 = LocalPlayer():GetBonePosition(LocalPlayer():LookupBone("ValveBiped.Bip01_Head1")) || Vector() scenes[1].ang1 = LocalPlayer():GetAngles() local npc = dt.cont.ent scenes[1].ang2 = Quantum.Client.Cam.InvertAngle(npc:GetAngles()) || Angle() -- make the camera look at the NPC scenes[1].pos2 = npc:GetBonePosition(npc:LookupBone("ValveBiped.Bip01_Head1")) + scenes[1].ang2:Forward() * -28 || Vector() -- Move the camera forward Quantum.Client.Cam.Start( scenes, true, false ) local dialogue = Quantum.Dialogue.Get( dt.cont.dialogueID ) local f = vgui.Create( "DFrame" ) f:SetSize( sw, sh ) f:SetTitle( "" ) f:ShowCloseButton( false ) f.Paint = function( self, w, h ) surface.SetDrawColor( Color( 20, 20, 20, 255 ) ) local height = 90 * resScale surface.DrawRect( 0, 0, w, height ) surface.DrawRect( 0, h - height, w, height ) end f:SetDraggable( false ) f:MakePopup() function f:OnClose() Quantum.Client.IsInMenu = false Quantum.Client.Cam.Stop() -- stop the cinematic end local keycodesClose = { [KEY_ESCAPE] = true, [KEY_TAB] = true } function f:OnKeyCodeReleased( keyCode ) if( keycodesClose[keyCode] ) then self:Close() end end f.w, f.h = f:GetSize() local q = vgui.Create( "DLabel", f ) q:SetText("") end end return menu