@quake2ts/cgame 0.0.739

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/browser/index.global.js +10 -0
  2. package/dist/browser/index.global.js.map +1 -0
  3. package/dist/cjs/index.cjs +947 -0
  4. package/dist/cjs/index.cjs.map +1 -0
  5. package/dist/esm/index.js +940 -0
  6. package/dist/esm/index.js.map +1 -0
  7. package/dist/index.cjs +1353 -0
  8. package/dist/index.cjs.map +1 -0
  9. package/dist/index.d.cts +202 -0
  10. package/dist/index.d.ts +202 -0
  11. package/dist/index.js +1346 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/tsconfig.tsbuildinfo +1 -0
  14. package/dist/types/hud/blends.d.ts +4 -0
  15. package/dist/types/hud/blends.d.ts.map +1 -0
  16. package/dist/types/hud/crosshair.d.ts +7 -0
  17. package/dist/types/hud/crosshair.d.ts.map +1 -0
  18. package/dist/types/hud/damage.d.ts +5 -0
  19. package/dist/types/hud/damage.d.ts.map +1 -0
  20. package/dist/types/hud/diagnostics.d.ts +3 -0
  21. package/dist/types/hud/diagnostics.d.ts.map +1 -0
  22. package/dist/types/hud/icons.d.ts +12 -0
  23. package/dist/types/hud/icons.d.ts.map +1 -0
  24. package/dist/types/hud/layout.d.ts +30 -0
  25. package/dist/types/hud/layout.d.ts.map +1 -0
  26. package/dist/types/hud/messages.d.ts +15 -0
  27. package/dist/types/hud/messages.d.ts.map +1 -0
  28. package/dist/types/hud/numbers.d.ts +3 -0
  29. package/dist/types/hud/numbers.d.ts.map +1 -0
  30. package/dist/types/hud/pickup.d.ts +4 -0
  31. package/dist/types/hud/pickup.d.ts.map +1 -0
  32. package/dist/types/hud/statusbar.d.ts +16 -0
  33. package/dist/types/hud/statusbar.d.ts.map +1 -0
  34. package/dist/types/hud/subtitles.d.ts +7 -0
  35. package/dist/types/hud/subtitles.d.ts.map +1 -0
  36. package/dist/types/hud/types.d.ts +39 -0
  37. package/dist/types/hud/types.d.ts.map +1 -0
  38. package/dist/types/index.d.ts +21 -0
  39. package/dist/types/index.d.ts.map +1 -0
  40. package/dist/types/parse.d.ts +7 -0
  41. package/dist/types/parse.d.ts.map +1 -0
  42. package/dist/types/prediction/index.d.ts +53 -0
  43. package/dist/types/prediction/index.d.ts.map +1 -0
  44. package/dist/types/screen.d.ts +64 -0
  45. package/dist/types/screen.d.ts.map +1 -0
  46. package/dist/types/types.d.ts +109 -0
  47. package/dist/types/types.d.ts.map +1 -0
  48. package/dist/types/view/camera.d.ts +4 -0
  49. package/dist/types/view/camera.d.ts.map +1 -0
  50. package/dist/types/view/effects.d.ts +42 -0
  51. package/dist/types/view/effects.d.ts.map +1 -0
  52. package/package.json +56 -0
@@ -0,0 +1,10 @@
1
+ "use strict";var Quake2CGame=(()=>{var se=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var Nt=Object.getOwnPropertyNames;var Ot=Object.prototype.hasOwnProperty;var Oe=(e,t)=>{for(var r in t)se(e,r,{get:t[r],enumerable:!0})},Lt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Nt(t))!Ot.call(e,i)&&i!==r&&se(e,i,{get:()=>t[i],enumerable:!(n=wt(t,i))||n.enumerable});return e};var zt=e=>Lt(se({},"__esModule",{value:!0}),e);var Fn={};Oe(Fn,{ClientPrediction:()=>be,GetCGameAPI:()=>Dn,ViewEffects:()=>ye,defaultPredictionState:()=>I,interpolatePredictionState:()=>mn,updateCamera:()=>an});var Ct=Object.defineProperty,Pt=(e,t)=>{for(var r in t)Ct(e,r,{get:t[r],enumerable:!0})},ze={x:0,y:0,z:0};var Bn=Math.PI/180;function k(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function Ce(e,t){return{x:e.x-t.x,y:e.y-t.y,z:e.z-t.z}}function C(e,t){return{x:e.x*t,y:e.y*t,z:e.z*t}}function b(e,t){return e.x*t.x+e.y*t.y+e.z*t.z}function It(e){return b(e,e)}function O(e){return Math.sqrt(It(e))}function Pe(e){let t=O(e);return t===0?e:C(e,1/t)}var Ie=0,De=1,Fe=2,Dt=Math.PI/180,Un=180/Math.PI;function oe(e,t){switch(t){case Ie:return e.x;case De:return e.y;case Fe:default:return e.z}}function ae(e){return e*Dt}function ue(e){let t=e%360;return t<0?360+t:t}function P(e){let t=ae(oe(e,De)),r=ae(oe(e,Ie)),n=ae(oe(e,Fe)),i=Math.sin(t),s=Math.cos(t),o=Math.sin(r),a=Math.cos(r),l=Math.sin(n),c=Math.cos(n),h={x:a*s,y:a*i,z:-o},u={x:-l*o*s-c*-i,y:-l*o*i-c*s,z:-l*a},f={x:c*o*s-l*-i,y:c*o*i-l*s,z:c*a};return{forward:h,right:u,up:f}}var Le=[[-.525731,0,.850651],[-.442863,.238856,.864188],[-.295242,0,.955423],[-.309017,.5,.809017],[-.16246,.262866,.951056],[0,0,1],[0,.850651,.525731],[-.147621,.716567,.681718],[.147621,.716567,.681718],[0,.525731,.850651],[.309017,.5,.809017],[.525731,0,.850651],[.295242,0,.955423],[.442863,.238856,.864188],[.16246,.262866,.951056],[-.681718,.147621,.716567],[-.809017,.309017,.5],[-.587785,.425325,.688191],[-.850651,.525731,0],[-.864188,.442863,.238856],[-.716567,.681718,.147621],[-.688191,.587785,.425325],[-.5,.809017,.309017],[-.238856,.864188,.442863],[-.425325,.688191,.587785],[-.716567,.681718,-.147621],[-.5,.809017,-.309017],[-.525731,.850651,0],[0,.850651,-.525731],[-.238856,.864188,-.442863],[0,.955423,-.295242],[-.262866,.951056,-.16246],[0,1,0],[0,.955423,.295242],[-.262866,.951056,.16246],[.238856,.864188,.442863],[.262866,.951056,.16246],[.5,.809017,.309017],[.238856,.864188,-.442863],[.262866,.951056,-.16246],[.5,.809017,-.309017],[.850651,.525731,0],[.716567,.681718,.147621],[.716567,.681718,-.147621],[.525731,.850651,0],[.425325,.688191,.587785],[.864188,.442863,.238856],[.688191,.587785,.425325],[.809017,.309017,.5],[.681718,.147621,.716567],[.587785,.425325,.688191],[.955423,.295242,0],[1,0,0],[.951056,.16246,.262866],[.850651,-.525731,0],[.955423,-.295242,0],[.864188,-.442863,.238856],[.951056,-.16246,.262866],[.809017,-.309017,.5],[.681718,-.147621,.716567],[.850651,0,.525731],[.864188,.442863,-.238856],[.809017,.309017,-.5],[.951056,.16246,-.262866],[.525731,0,-.850651],[.681718,.147621,-.716567],[.681718,-.147621,-.716567],[.850651,0,-.525731],[.809017,-.309017,-.5],[.864188,-.442863,-.238856],[.951056,-.16246,-.262866],[.147621,.716567,-.681718],[.309017,.5,-.809017],[.425325,.688191,-.587785],[.442863,.238856,-.864188],[.587785,.425325,-.688191],[.688191,.587785,-.425325],[-.147621,.716567,-.681718],[-.309017,.5,-.809017],[0,.525731,-.850651],[-.525731,0,-.850651],[-.442863,.238856,-.864188],[-.295242,0,-.955423],[-.16246,.262866,-.951056],[0,0,-1],[.295242,0,-.955423],[.16246,.262866,-.951056],[-.442863,-.238856,-.864188],[-.309017,-.5,-.809017],[-.16246,-.262866,-.951056],[0,-.850651,-.525731],[-.147621,-.716567,-.681718],[.147621,-.716567,-.681718],[0,-.525731,-.850651],[.309017,-.5,-.809017],[.442863,-.238856,-.864188],[.16246,-.262866,-.951056],[.238856,-.864188,-.442863],[.5,-.809017,-.309017],[.425325,-.688191,-.587785],[.716567,-.681718,-.147621],[.688191,-.587785,-.425325],[.587785,-.425325,-.688191],[0,-.955423,-.295242],[0,-1,0],[.262866,-.951056,-.16246],[0,-.850651,.525731],[0,-.955423,.295242],[.238856,-.864188,.442863],[.262866,-.951056,.16246],[.5,-.809017,.309017],[.716567,-.681718,.147621],[.525731,-.850651,0],[-.238856,-.864188,-.442863],[-.5,-.809017,-.309017],[-.262866,-.951056,-.16246],[-.850651,-.525731,0],[-.716567,-.681718,-.147621],[-.716567,-.681718,.147621],[-.525731,-.850651,0],[-.5,-.809017,.309017],[-.238856,-.864188,.442863],[-.262866,-.951056,.16246],[-.864188,-.442863,.238856],[-.809017,-.309017,.5],[-.688191,-.587785,.425325],[-.681718,-.147621,.716567],[-.442863,-.238856,.864188],[-.587785,-.425325,.688191],[-.309017,-.5,.809017],[-.147621,-.716567,.681718],[-.425325,-.688191,.587785],[-.16246,-.262866,.951056],[.442863,-.238856,.864188],[.16246,-.262866,.951056],[.309017,-.5,.809017],[.147621,-.716567,.681718],[0,-.525731,.850651],[.425325,-.688191,.587785],[.587785,-.425325,.688191],[.688191,-.587785,.425325],[-.955423,.295242,0],[-.951056,.16246,.262866],[-1,0,0],[-.850651,0,.525731],[-.955423,-.295242,0],[-.951056,-.16246,.262866],[-.864188,.442863,-.238856],[-.951056,.16246,-.262866],[-.809017,.309017,-.5],[-.864188,-.442863,-.238856],[-.951056,-.16246,-.262866],[-.809017,-.309017,-.5],[-.681718,.147621,-.716567],[-.681718,-.147621,-.716567],[-.850651,0,-.525731],[-.688191,.587785,-.425325],[-.587785,.425325,-.688191],[-.425325,.688191,-.587785],[-.425325,-.688191,-.587785],[-.587785,-.425325,-.688191],[-.688191,-.587785,-.425325]];var E=1,w=2;var fe=8,he=16,Ft=32;var Gt=16384;var W=65536,Ge=1<<17,Bt=1<<18,Ut=1<<19,kt=1<<20,Ht=1<<21,Wt=1<<22,Vt=1<<23,kn=1<<24,V=1<<25,Xt=1<<26,Hn=1<<27,Wn=1<<28,Vn=1<<29,X=1<<30,Xn=1<<31;var Kn=1<<25,Yn=1<<28,qn=1<<29,Zn=1<<30,Jn=1<<31;var jn=E|w,$n=E|W|w|V|X,Qn=E|W|w,ei=E|Ge|w|V|X,le=Ft|fe|he,ti=E|he|fe,Kt=E|V|X|w|Xt,ri=Bt|Ut|kt|Ht|Wt|Vt,ni=E|fe|he|V|X,ii=E|W|w,si=E|w,oi=E|W|w|Ge,ai=Kt|Gt;var li=Number.MAX_SAFE_INTEGER-1;var Be=256;var Yt=256,de=8192,_e=2048,me=512,qt=256,Zt=Be*2,Jt=256,ce=32;var S=(e=>(e[e.Name=0]="Name",e[e.CdTrack=1]="CdTrack",e[e.Sky=2]="Sky",e[e.SkyAxis=3]="SkyAxis",e[e.SkyRotate=4]="SkyRotate",e[e.StatusBar=5]="StatusBar",e[e.HealthBarName=55]="HealthBarName",e[e.CONFIG_N64_PHYSICS=56]="CONFIG_N64_PHYSICS",e[e.CONFIG_CTF_TEAMS=57]="CONFIG_CTF_TEAMS",e[e.CONFIG_COOP_RESPAWN_STRING=58]="CONFIG_COOP_RESPAWN_STRING",e[e.Story=54]="Story",e[e.AirAccel=59]="AirAccel",e[e.MaxClients=60]="MaxClients",e[e.MapChecksum=61]="MapChecksum",e[e.Models=62]="Models",e[e.Sounds=62+de]="Sounds",e[e.Images=e.Sounds+_e]="Images",e[e.Lights=e.Images+me]="Lights",e[e.ShadowLights=e.Lights+Yt]="ShadowLights",e[e.Items=e.ShadowLights+Jt]="Items",e[e.Players=e.Items+qt]="Players",e[e.PlayerSkins=e.Players]="PlayerSkins",e[e.General=e.Players+Be]="General",e[e.WheelWeapons=e.General+Zt]="WheelWeapons",e[e.WheelAmmo=e.WheelWeapons+ce]="WheelAmmo",e[e.WheelPowerups=e.WheelAmmo+ce]="WheelPowerups",e[e.CdLoopCount=e.WheelPowerups+ce]="CdLoopCount",e[e.GameStyle=e.CdLoopCount+1]="GameStyle",e[e.MaxConfigStrings=e.GameStyle+1]="MaxConfigStrings",e))(S||{}),ci=S.MaxConfigStrings;var ui=S.Sounds,fi=S.Images,hi=S.Lights,di=S.Items,_i=S.Players,mi=S.General,jt={};Pt(jt,{addReplayFrame:()=>tr,createReplaySession:()=>er,deserializeReplay:()=>Qt,serializeReplay:()=>$t});function $t(e){return JSON.stringify(e,null,2)}function Qt(e){let t=JSON.parse(e);if(!t.metadata||!Array.isArray(t.frames))throw new Error("Invalid replay format: missing metadata or frames");return t}function er(e,t){return{metadata:{map:e,date:new Date().toISOString(),version:"1.0",seed:t},frames:[]}}function tr(e,t,r,n){e.frames.push({serverFrame:r,cmd:t,timestamp:Date.now()-n})}var ge=(e=>(e[e.None=0]="None",e[e.Feet=1]="Feet",e[e.Waist=2]="Waist",e[e.Under=3]="Under",e))(ge||{});var N=(e=>(e[e.Ducked=1]="Ducked",e[e.JumpHeld=2]="JumpHeld",e[e.OnGround=4]="OnGround",e[e.TimeWaterJump=8]="TimeWaterJump",e[e.TimeLand=16]="TimeLand",e[e.TimeTeleport=32]="TimeTeleport",e[e.NoPositionalPrediction=64]="NoPositionalPrediction",e[e.OnLadder=128]="OnLadder",e[e.NoAngularPrediction=256]="NoAngularPrediction",e[e.IgnorePlayerCollision=512]="IgnorePlayerCollision",e[e.TimeTrick=1024]="TimeTrick",e))(N||{});function K(e,t){return(e&t)!==0}var Y=(e=>(e[e.Normal=0]="Normal",e[e.Grapple=1]="Grapple",e[e.NoClip=2]="NoClip",e[e.Spectator=3]="Spectator",e[e.Dead=4]="Dead",e[e.Gib=5]="Gib",e[e.Freeze=6]="Freeze",e))(Y||{});function rr(e){let{velocity:t,frametime:r,onGround:n,groundIsSlick:i,onLadder:s,waterlevel:o,pmFriction:a,pmStopSpeed:l,pmWaterFriction:c}=e,h=O(t);if(h<1)return{x:0,y:0,z:t.z};let u=0;if(n&&!i||s){let d=h<l?l:h;u+=d*a*r}o>0&&!s&&(u+=h*c*o*r);let f=h-u;if(f<0&&(f=0),f===h)return t;let _=f/h;return C(t,_)}function nr(e){let{velocity:t,wishdir:r,wishspeed:n,accel:i,frametime:s}=e,o=b(t,r),a=n-o;if(a<=0)return t;let l=i*s*n;return l>a&&(l=a),{x:t.x+r.x*l,y:t.y+r.y*l,z:t.z+r.z*l}}function ir(e){let{forward:t,right:r,cmd:n,maxSpeed:i}=e,s={x:t.x*n.forwardmove+r.x*n.sidemove,y:t.y*n.forwardmove+r.y*n.sidemove,z:0},o=O(s);if(o>i){let a=i/o;s=C(s,a),o=i}return{wishdir:o===0?s:Pe(s),wishspeed:o}}function sr(e){let{forward:t,right:r,cmd:n,maxSpeed:i}=e,s={x:t.x*n.forwardmove+r.x*n.sidemove,y:t.y*n.forwardmove+r.y*n.sidemove,z:t.z*n.forwardmove+r.z*n.sidemove};n.upmove>10?s=k(s,{x:0,y:0,z:n.upmove}):n.upmove<-10?s=k(s,{x:0,y:0,z:n.upmove}):Math.abs(n.forwardmove)<10&&Math.abs(n.sidemove)<10?s=k(s,{x:0,y:0,z:-60}):s=k(s,{x:0,y:0,z:10});let o=O(s);if(o>i){let a=i/o;s=C(s,a),o=i}return o*=.5,{wishdir:o===0?s:Pe(s),wishspeed:o}}function or(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function ar(e){return e>89&&e<180?89:e<271&&e>=180?271:e}function q(e){let{pmFlags:t,cmdAngles:r,deltaAngles:n}=e,i;(t&32)!==0?i={x:0,y:r.y+n.y,z:0}:(i=or(r,n),i={...i,x:ar(i.x)});let s=P(i);return{viewangles:i,...s}}function lr(e,t,r){let n=Math.floor(r/2),i=r%2!==0,s=t+n,o=e[s]||0;if(i){let a=e[s+1]||0,l=o>>>8&255;return(a&255)<<8|l}else return o&65535}function Ue(e,t,r,n){let i=n*r,s=Math.floor(i/8),o=i%8,a=(1<<n)-1<<o;return(lr(e,t,s)&a)>>>o}var Ae=(e=>(e.QuadDamage="quad",e.Invulnerability="invulnerability",e.EnviroSuit="enviro_suit",e.Rebreather="rebreather",e.Silencer="silencer",e.PowerScreen="power_screen",e.PowerShield="power_shield",e.QuadFire="quad_fire",e.Invisibility="invisibility",e.Bandolier="bandolier",e.AmmoPack="ammo_pack",e.IRGoggles="ir_goggles",e.DoubleDamage="double_damage",e.SphereVengeance="sphere_vengeance",e.SphereHunter="sphere_hunter",e.SphereDefender="sphere_defender",e.Doppelganger="doppelganger",e.TagToken="tag_token",e.TechResistance="tech_resistance",e.TechStrength="tech_strength",e.TechHaste="tech_haste",e.TechRegeneration="tech_regeneration",e.Flashlight="flashlight",e.Compass="compass",e))(Ae||{}),y=(e=>(e[e.STAT_HEALTH_ICON=0]="STAT_HEALTH_ICON",e[e.STAT_HEALTH=1]="STAT_HEALTH",e[e.STAT_AMMO_ICON=2]="STAT_AMMO_ICON",e[e.STAT_AMMO=3]="STAT_AMMO",e[e.STAT_ARMOR_ICON=4]="STAT_ARMOR_ICON",e[e.STAT_ARMOR=5]="STAT_ARMOR",e[e.STAT_SELECTED_ICON=6]="STAT_SELECTED_ICON",e[e.STAT_PICKUP_ICON=7]="STAT_PICKUP_ICON",e[e.STAT_PICKUP_STRING=8]="STAT_PICKUP_STRING",e[e.STAT_TIMER_ICON=9]="STAT_TIMER_ICON",e[e.STAT_TIMER=10]="STAT_TIMER",e[e.STAT_HELPICON=11]="STAT_HELPICON",e[e.STAT_SELECTED_ITEM=12]="STAT_SELECTED_ITEM",e[e.STAT_LAYOUTS=13]="STAT_LAYOUTS",e[e.STAT_FRAGS=14]="STAT_FRAGS",e[e.STAT_FLASHES=15]="STAT_FLASHES",e[e.STAT_CHASE=16]="STAT_CHASE",e[e.STAT_SPECTATOR=17]="STAT_SPECTATOR",e[e.STAT_CTF_TEAM1_PIC=18]="STAT_CTF_TEAM1_PIC",e[e.STAT_CTF_TEAM1_CAPS=19]="STAT_CTF_TEAM1_CAPS",e[e.STAT_CTF_TEAM2_PIC=20]="STAT_CTF_TEAM2_PIC",e[e.STAT_CTF_TEAM2_CAPS=21]="STAT_CTF_TEAM2_CAPS",e[e.STAT_CTF_FLAG_PIC=22]="STAT_CTF_FLAG_PIC",e[e.STAT_CTF_JOINED_TEAM1_PIC=23]="STAT_CTF_JOINED_TEAM1_PIC",e[e.STAT_CTF_JOINED_TEAM2_PIC=24]="STAT_CTF_JOINED_TEAM2_PIC",e[e.STAT_CTF_TEAM1_HEADER=25]="STAT_CTF_TEAM1_HEADER",e[e.STAT_CTF_TEAM2_HEADER=26]="STAT_CTF_TEAM2_HEADER",e[e.STAT_CTF_TECH=27]="STAT_CTF_TECH",e[e.STAT_CTF_ID_VIEW=28]="STAT_CTF_ID_VIEW",e[e.STAT_CTF_MATCH=29]="STAT_CTF_MATCH",e[e.STAT_CTF_ID_VIEW_COLOR=30]="STAT_CTF_ID_VIEW_COLOR",e[e.STAT_CTF_TEAMINFO=31]="STAT_CTF_TEAMINFO",e[e.STAT_WEAPONS_OWNED_1=32]="STAT_WEAPONS_OWNED_1",e[e.STAT_WEAPONS_OWNED_2=33]="STAT_WEAPONS_OWNED_2",e[e.STAT_AMMO_INFO_START=34]="STAT_AMMO_INFO_START",e[e.STAT_POWERUP_INFO_START=41]="STAT_POWERUP_INFO_START",e[e.STAT_KEY_A=44]="STAT_KEY_A",e[e.STAT_KEY_B=45]="STAT_KEY_B",e[e.STAT_KEY_C=46]="STAT_KEY_C",e[e.STAT_ACTIVE_WHEEL_WEAPON=47]="STAT_ACTIVE_WHEEL_WEAPON",e[e.STAT_COOP_RESPAWN=48]="STAT_COOP_RESPAWN",e[e.STAT_LIVES=49]="STAT_LIVES",e[e.STAT_HIT_MARKER=50]="STAT_HIT_MARKER",e[e.STAT_SELECTED_ITEM_NAME=51]="STAT_SELECTED_ITEM_NAME",e[e.STAT_HEALTH_BARS=52]="STAT_HEALTH_BARS",e[e.STAT_ACTIVE_WEAPON=53]="STAT_ACTIVE_WEAPON",e[e.STAT_LAST=54]="STAT_LAST",e))(y||{}),ke=12,He=9,gi=Math.ceil(ke*He/16),We=23,Ve=2,Ai=Math.ceil(We*Ve/16),cr={power_screen:0,power_shield:1,quad:3,quad_fire:4,invulnerability:5,invisibility:6,silencer:7,rebreather:8,enviro_suit:9,bandolier:10,ammo_pack:10,ir_goggles:11,double_damage:12,sphere_vengeance:13,sphere_hunter:14,sphere_defender:15,doppelganger:16,flashlight:17,compass:18,tech_resistance:19,tech_strength:20,tech_haste:21,tech_regeneration:22,tag_token:-1};function Xe(e,t){return t<0||t>=ke?0:Ue(e,34,t,He)}function Ke(e,t){let r;return typeof t=="number"?r=t:r=cr[t],r===void 0||r<0||r>=We?0:Ue(e,41,r,Ve)}var Si=1<<17,vi=1<<18,Ti=1<<19,pi=1<<20,xi=1<<21,Mi=1<<22,yi=1<<23,Ei=1<<24,Ri=1<<25,bi=1<<26,wi=1<<27,Ni=1<<28,Oi=1<<29,Li=1<<30;var F=.025,H={None:0,Feet:1,Waist:2,Under:3},ur=(e,t)=>{let r={...e.origin};r.z-=.25;let n=t(e.origin,r);return{...e,onGround:n.fraction<1}},fr=(e,t)=>{let r={...e.origin},{mins:n,maxs:i}=e;r.z=e.origin.z+n.z+1;let s=t(r);if(!(s&le))return{...e,waterLevel:H.None,watertype:0};let o=H.Feet,a=s,l=e.origin.z+(n.z+i.z)*.5;r.z=l;let c=t(r);if(c&le){o=H.Waist,a=c;let h=e.origin.z+22;r.z=h;let u=t(r);u&le&&(o=H.Under,a=u)}return{...e,waterLevel:o,watertype:a}},Z=(e,t,r,n)=>{let i={...e};i=ur(i,r),i=fr(i,n);let{origin:s,velocity:o,onGround:a,waterLevel:l,viewAngles:c}=i,h=l>=2?c:{x:c.x>180?(c.x-360)/3:c.x/3,y:c.y,z:c.z},{forward:u,right:f}=P(h),_=rr({velocity:o,frametime:F,onGround:a,groundIsSlick:!1,onLadder:!1,waterlevel:l,pmFriction:6,pmStopSpeed:100,pmWaterFriction:1}),d=l>=2?sr({forward:u,right:f,cmd:t,maxSpeed:320}):ir({forward:u,right:f,cmd:t,maxSpeed:320}),g=nr({velocity:_,wishdir:d.wishdir,wishspeed:d.wishspeed,accel:a||l>=2?10:1,frametime:F}),x=r(s,{x:s.x+g.x*F,y:s.y+g.y*F,z:s.z+g.z*F});return{...i,origin:x.endpos,velocity:g}};var hr=class{constructor(e=1400){typeof e=="number"?(this.buffer=new Uint8Array(e),this.fixed=!1):(this.buffer=e,this.fixed=!0),this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),this.offset=0}ensureSpace(e){if(this.offset+e>this.buffer.byteLength){if(this.fixed)throw new Error(`Buffer overflow: capacity ${this.buffer.byteLength}, needed ${this.offset+e}`);let t=Math.max(this.buffer.byteLength*2,this.offset+e),r=new Uint8Array(t);r.set(this.buffer),this.buffer=r,this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength)}}writeByte(e){this.ensureSpace(1),this.view.setUint8(this.offset,e),this.offset+=1}writeBytes(e){this.ensureSpace(e.byteLength),this.buffer.set(e,this.offset),this.offset+=e.byteLength}writeChar(e){this.ensureSpace(1),this.view.setInt8(this.offset,e),this.offset+=1}writeShort(e){this.ensureSpace(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeLong(e){this.ensureSpace(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeFloat(e){this.ensureSpace(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeString(e){let t=e.length;this.ensureSpace(t+1);for(let r=0;r<t;r++)this.view.setUint8(this.offset+r,e.charCodeAt(r));this.view.setUint8(this.offset+t,0),this.offset+=t+1}writeCoord(e){this.writeShort(Math.trunc(e*8))}writeAngle(e){this.writeByte(Math.trunc(e*256/360)&255)}writeAngle16(e){this.writeShort(Math.trunc(e*65536/360)&65535)}writePos(e){this.writeCoord(e.x),this.writeCoord(e.y),this.writeCoord(e.z)}writeDir(e){let t=-1,r=0;if(e.x===0&&e.y===0&&e.z===0){this.writeByte(0);return}for(let n=0;n<Le.length;n++){let i=Le[n],s=e.x*i[0]+e.y*i[1]+e.z*i[2];s>t&&(t=s,r=n)}this.writeByte(r)}getData(){return this.buffer.slice(0,this.offset)}getBuffer(){return this.buffer}getOffset(){return this.offset}reset(){this.offset=0}};var z=class v{constructor(){this.qport=0,this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=0,this.lastSent=0,this.remoteAddress=null,this.reliableMessage=new hr(v.MAX_RELIABLE_BUFFER);let t=Date.now();this.lastReceived=t,this.lastSent=t,this.qport=Math.floor(Math.random()*65536)}setup(t,r=null){this.qport=t,this.remoteAddress=r,this.reset()}reset(){this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.reliableMessage.reset(),this.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=Date.now(),this.lastSent=Date.now()}transmit(t){this.outgoingSequence++,this.lastSent=Date.now();let r=0,n=!1,i=0;this.reliableLength>0&&(this.reliableLength>v.FRAGMENT_SIZE?(n=!0,this.fragmentSendOffset>=this.reliableLength&&(this.fragmentSendOffset=0),r=this.reliableLength-this.fragmentSendOffset,r>v.FRAGMENT_SIZE&&(r=v.FRAGMENT_SIZE),i=this.fragmentSendOffset,this.fragmentSendOffset+=r):r=this.reliableLength);let s=v.PACKET_HEADER,o=r>0?2+(n?8:0):0,a=t?t.length:0;s+o+r+a>v.MAX_MSGLEN&&(a=v.MAX_MSGLEN-s-o-r,a<0&&(a=0));let l=new ArrayBuffer(s+o+r+a),c=new DataView(l),h=new Uint8Array(l),u=this.outgoingSequence;r>0&&(u|=2147483648,(this.outgoingReliableSequence&1)!==0&&(u|=1073741824)),c.setUint32(0,u,!0);let f=this.incomingSequence;(this.incomingReliableSequence&1)!==0&&(f|=2147483648),c.setUint32(4,f,!0),c.setUint16(8,this.qport,!0);let _=s;if(r>0){let d=r;n&&(d|=32768),c.setUint16(_,d,!0),_+=2,n&&(c.setUint32(_,i,!0),_+=4,c.setUint32(_,this.reliableLength,!0),_+=4);let x=this.reliableMessage.getBuffer().subarray(i,i+r);h.set(x,_),_+=r}if(t&&a>0){let d=t.slice(0,a);h.set(d,_)}return h}process(t){if(t.length<v.PACKET_HEADER)return null;this.lastReceived=Date.now();let r=new DataView(t.buffer,t.byteOffset,t.byteLength),n=r.getUint32(0,!0),i=r.getUint32(4,!0),s=r.getUint16(8,!0);if(this.qport!==s)return null;let o=n&1073741823;if((o-this.incomingSequence|0)<=0)return null;this.incomingSequence=o;let a=i&2147483647,l=(i&2147483648)!==0;if(a>this.incomingAcknowledged&&(this.incomingAcknowledged=a),this.reliableLength>0){let d=l?1:0,g=this.outgoingReliableSequence&1;d!==g&&(this.reliableLength=0,this.reliableMessage.reset(),this.outgoingReliableSequence^=1,this.fragmentSendOffset=0)}let c=(n&2147483648)!==0,h=(n&1073741824)!==0?1:0,u=v.PACKET_HEADER,f=null;if(c){if(u+2>t.byteLength)return null;let d=r.getUint16(u,!0);u+=2;let g=(d&32768)!==0;d&=32767;let x=this.incomingReliableSequence&1;if(h===x)if(g){if(u+8>t.byteLength)return null;let R=r.getUint32(u,!0);u+=4;let M=r.getUint32(u,!0);if(u+=4,M>v.MAX_RELIABLE_BUFFER)return console.warn(`NetChan: received invalid fragment total ${M} > ${v.MAX_RELIABLE_BUFFER}`),null;if((!this.fragmentBuffer||this.fragmentBuffer.length!==M)&&(this.fragmentBuffer=new Uint8Array(M),this.fragmentLength=M,this.fragmentReceived=0),u+d>t.byteLength)return null;let L=t.subarray(u,u+d);R===this.fragmentReceived&&R+d<=M&&(this.fragmentBuffer.set(L,R),this.fragmentReceived+=d,this.fragmentReceived>=M&&(f=this.fragmentBuffer,this.incomingReliableSequence++,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0))}else{if(this.incomingReliableSequence++,u+d>t.byteLength)return null;f=t.slice(u,u+d)}u+=d}let _=t.slice(u);if(f&&f.length>0){let d=f.length+_.length,g=new Uint8Array(d);return g.set(f,0),g.set(_,f.length),g}return _||new Uint8Array(0)}canSendReliable(){return this.reliableLength===0}writeReliableByte(t){if(this.reliableLength+1>v.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeByte(t),this.reliableLength++}writeReliableShort(t){if(this.reliableLength+2>v.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeShort(t),this.reliableLength+=2}writeReliableLong(t){if(this.reliableLength+4>v.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeLong(t),this.reliableLength+=4}writeReliableString(t){let r=t.length+1;if(this.reliableLength+r>v.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeString(t),this.reliableLength+=r}getReliableData(){return this.reliableLength===0?new Uint8Array(0):this.reliableMessage.getBuffer().subarray(0,this.reliableLength)}needsKeepalive(t){return t-this.lastSent>1e3}isTimedOut(t,r=3e4){return t-this.lastReceived>r}};z.MAX_MSGLEN=1400;z.FRAGMENT_SIZE=1024;z.PACKET_HEADER=10;z.HEADER_OVERHEAD=z.PACKET_HEADER+2;z.MAX_RELIABLE_BUFFER=262144;var Ye=(e=>(e[e.Bullets=0]="Bullets",e[e.Shells=1]="Shells",e[e.Rockets=2]="Rockets",e[e.Grenades=3]="Grenades",e[e.Cells=4]="Cells",e[e.Slugs=5]="Slugs",e[e.MagSlugs=6]="MagSlugs",e[e.Trap=7]="Trap",e[e.Flechettes=8]="Flechettes",e[e.Tesla=9]="Tesla",e[e.Disruptor=10]="Disruptor",e[e.Prox=11]="Prox",e[e.Nuke=12]="Nuke",e[e.Rounds=13]="Rounds",e))(Ye||{}),zi=Object.keys(Ye).length/2;var J=["blaster","shotgun","supershotgun","machinegun","chaingun","grenadelauncher","rocketlauncher","grenades","hyperblaster","railgun","bfg10k"],qe={blaster:null,shotgun:1,supershotgun:1,machinegun:0,chaingun:0,grenades:3,grenadelauncher:3,rocketlauncher:2,hyperblaster:4,railgun:5,bfg10k:4,grapple:null,chainfist:null,etf_rifle:8,prox_launcher:11,ionripper:4,plasmabeam:4,phalanx:6,disruptor:10,trap:7};var $=null;var j=[1,1,1,1],dr=!0,Ze=["ch1","ch2","ch3"],Se=[null,null,null],Je=e=>{for(let t=0;t<Ze.length;t++){let r=Ze[t];try{Se[t]=e.Draw_RegisterPic(`pics/${r}.pcx`)}catch{if(t===0)try{Se[t]=e.Draw_RegisterPic("pics/crosshair.pcx")}catch{e.Com_Print(`Failed to load crosshair image
2
+ `)}}}$=Se[0]};var je=(e,t,r)=>{if(dr&&$){let n=e.Draw_GetPicSize($),i=(t-n.width)/2,s=(r-n.height)/2;e.SCR_DrawColorPic(i,s,$,{x:j[0],y:j[1],z:j[2]},j[3])}};var ve=new Map,_r=["w_blaster","w_shotgun","w_sshotgun","w_machinegun","w_chaingun","w_glauncher","w_rlauncher","w_hyperblaster","w_railgun","w_bfg","w_grapple","a_grenades","a_bullets","a_cells","a_rockets","a_shells","a_slugs","p_quad","p_invulnerability","p_silencer","p_rebreather","p_envirosuit","p_adrenaline","p_megahealth","i_jacketarmor","i_combatarmor","i_bodyarmor","i_powerscreen","i_powershield","k_datacd","k_powercube","k_pyramid","k_dataspin","k_security","k_bluekey","k_redkey"],$e=e=>{for(let t of _r)try{let r=e.Draw_RegisterPic(`pics/${t}.pcx`);ve.set(t,r)}catch{e.Com_Print(`Failed to load HUD image: pics/${t}.pcx
3
+ `)}};var Qe=new Map,mr=["d_left","d_right","d_up","d_down"],et=e=>{for(let t of mr)try{let r=e.Draw_RegisterPic(`pics/${t}.pcx`);Qe.set(t,r)}catch{e.Com_Print(`Failed to load HUD image: pics/${t}.pcx
4
+ `)}},gr={x:1,y:1,z:1},tt=(e,t,r,n)=>{if((!t.damageAlpha||t.damageAlpha<=0)&&(!t.damageIndicators||t.damageIndicators.length===0)||!t.damageIndicators||t.damageIndicators.length===0)return;let i=r*.5,s=n*.5,{forward:o,right:a}=P(t.viewAngles),l=Math.min(r,n)*.25;for(let c of t.damageIndicators){let h=b(c.direction,a),u=b(c.direction,o),f=Math.atan2(u,h)*(180/Math.PI),_="",d=0,g=0;f>=45&&f<135?(_="d_up",g=-l):f>=-45&&f<45?(_="d_right",d=l):f>=-135&&f<-45?(_="d_down",g=l):(_="d_left",d=-l);let x=Qe.get(_);if(x){let R=e.Draw_GetPicSize(x),M=i+d-R.width*.5,L=s+g-R.height*.5,U=Math.max(0,Math.min(1,c.strength));e.SCR_DrawColorPic(M,L,x,gr,U)}}};var rt=3e3,nt=5e3,it=4,Q=class{constructor(){this.centerPrintMsg=null;this.notifyMessages=[]}addCenterPrint(t,r){this.centerPrintMsg={text:t,startTime:r,duration:rt}}addNotify(t,r){this.notifyMessages.push({text:t,startTime:r,duration:nt}),this.notifyMessages.length>it&&this.notifyMessages.shift()}setCenterPrint(t,r){this.centerPrintMsg={text:t,startTime:r,duration:rt}}addNotification(t,r,n){this.notifyMessages.push({text:t,startTime:n,duration:nt}),this.notifyMessages.length>it&&this.notifyMessages.shift()}clearNotifications(){this.notifyMessages=[]}clearCenterPrint(){this.centerPrintMsg=null}drawCenterPrint(t,r,n){if(!this.centerPrintMsg)return;if(r>this.centerPrintMsg.startTime+this.centerPrintMsg.duration){this.centerPrintMsg=null;return}let i=n.CENTER_PRINT_Y;t.SCR_DrawCenterString(i,this.centerPrintMsg.text)}drawNotifications(t,r){for(;this.notifyMessages.length>0&&r>this.notifyMessages[0].startTime+this.notifyMessages[0].duration;)this.notifyMessages.shift();let n=10;for(let i of this.notifyMessages)t.SCR_DrawFontString(10,n,i.text),n+=t.SCR_FontLineHeight()}};var Ar=3e3,ee=class{constructor(){this.subtitle=null}addSubtitle(t,r){this.subtitle={text:t,startTime:r,duration:Ar}}drawSubtitles(t,r){if(!this.subtitle)return;if(r>this.subtitle.startTime+this.subtitle.duration){this.subtitle=null;return}t.SCR_DrawCenterString(200,this.subtitle.text)}};var st=(e,t,r,n)=>{if(!t.blend)return;let[i,s,o,a]=t.blend;a>0};var ot=(e,t,r,n)=>{if(!t.pickupIcon)return;let i=ve.get(t.pickupIcon);if(i){let s=e.Draw_GetPicSize(i),o=r-s.width-10,a=n-s.height-10;e.SCR_DrawPic(o,a,i)}};var te=(e,t,r,n,i,s,o)=>{let a=Math.abs(n).toString();for(let l=0;l<a.length;l++){let c=parseInt(a[l]),h=i[c];h&&(o?e.SCR_DrawColorPic(t+l*s,r,h,{x:o[0],y:o[1],z:o[2]},o[3]):e.SCR_DrawPic(t+l*s,r,h))}};var Sr=!1;var at=(e,t,r,n,i,s)=>{let o=t.stats[y.STAT_HEALTH]||0,a=t.stats[y.STAT_ARMOR]||0,l=t.stats[y.STAT_AMMO]||0,c=t.stats[y.STAT_ARMOR_ICON]||0,h;if(o<=25&&(Sr?h=[.2,.6,1,1]:h=[1,0,0,1]),r.length>0&&(te(e,s.HEALTH_X,s.HEALTH_Y,o,r,n,h),te(e,s.ARMOR_X,s.ARMOR_Y,a,r,n),te(e,s.AMMO_X,s.AMMO_Y,l,r,n)),c>0){let u=e.get_configstring(S.Images+c);if(u){let f=e.Draw_RegisterPic(u);f&&e.SCR_DrawPic(s.ARMOR_X-24,s.ARMOR_Y-2,f)}}if(t.pickupIcon){let u=e.Draw_RegisterPic(t.pickupIcon);u&&e.SCR_DrawPic(s.WEAPON_ICON_X,s.WEAPON_ICON_Y,u)}else{let u=t.stats[y.STAT_SELECTED_ICON]||0;if(u>0){let f=e.get_configstring(S.Images+u);if(f){let _=e.Draw_RegisterPic(f);_&&e.SCR_DrawPic(s.WEAPON_ICON_X,s.WEAPON_ICON_Y,_)}}}};var lt=(e,t)=>{let r=e/640,n=t/480,i=Math.min(r,n);return{HEALTH_X:100*i,HEALTH_Y:t-30*i,ARMOR_X:200*i,ARMOR_Y:t-30*i,AMMO_X:e-100*i,AMMO_Y:t-30*i,CENTER_PRINT_X:e/2,CENTER_PRINT_Y:100*i,WEAPON_ICON_X:10*i,WEAPON_ICON_Y:t-30*i,POWERUP_X:e-30*i,POWERUP_Y:t-30*i,scale:i}};var A=null,Te=[],ct=0,pe=new Q,ut=new ee;function ft(e){A=e}function ht(){if(A){Te.length=0;for(let e=0;e<10;e++)try{let t=A.Draw_RegisterPic(`pics/hud/num_${e}.pcx`);Te.push(t),e===0&&(ct=A.Draw_GetPicSize(t).width)}catch{A.Com_Print(`Warning: Failed to load HUD image: pics/hud/num_${e}.pcx
5
+ `)}Je(A),$e(A),et(A)}}function dt(e,t,r,n,i,s,o){if(!A){console.error("CG_DrawHUD: cgame imports not initialized");return}let a=A.CL_ClientTime(),l=lt(r.width,r.height);if(st(A,o,r.width,r.height),at(A,o,Te,ct,a,l),ot(A,o,r.width,r.height),tt(A,o,r.width,r.height),o.centerPrint){let c=o.centerPrint.split(`
6
+ `),h=r.height/2-c.length*10;for(let u of c)A.SCR_DrawCenterString(h,u),h+=16}pe.drawCenterPrint(A,a,l),pe.drawNotifications(A,a),ut.drawSubtitles(A,a),je(A,r.width,r.height)}function G(){return pe}function _t(){return ut}function mt(e,t,r){t>=S.Models&&t<S.Models+de?e.RegisterModel(r):t>=S.Sounds&&t<S.Sounds+_e?e.RegisterSound(r):t>=S.Images&&t<S.Images+me&&e.Draw_RegisterPic(r)}var re=1e-6,B=typeof Float32Array<"u"?Float32Array:Array,xe=Math.random;function ne(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var us=Math.PI/180,fs=180/Math.PI;var ie={};Oe(ie,{add:()=>yr,angle:()=>Yr,bezier:()=>Br,ceil:()=>Er,clone:()=>Tr,copy:()=>xr,create:()=>gt,cross:()=>Ir,dist:()=>tn,distance:()=>pt,div:()=>en,divide:()=>Tt,dot:()=>Me,equals:()=>jr,exactEquals:()=>Jr,floor:()=>Rr,forEach:()=>on,fromValues:()=>pr,hermite:()=>Gr,inverse:()=>Cr,len:()=>nn,length:()=>At,lerp:()=>Dr,max:()=>wr,min:()=>br,mul:()=>Qr,multiply:()=>vt,negate:()=>zr,normalize:()=>Pr,random:()=>Ur,rotateX:()=>Vr,rotateY:()=>Xr,rotateZ:()=>Kr,round:()=>Nr,scale:()=>Or,scaleAndAdd:()=>Lr,set:()=>Mr,slerp:()=>Fr,sqrDist:()=>rn,sqrLen:()=>sn,squaredDistance:()=>xt,squaredLength:()=>Mt,str:()=>Zr,sub:()=>$r,subtract:()=>St,transformMat3:()=>Hr,transformMat4:()=>kr,transformQuat:()=>Wr,zero:()=>qr});function gt(){var e=new B(3);return B!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Tr(e){var t=new B(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function At(e){var t=e[0],r=e[1],n=e[2];return Math.sqrt(t*t+r*r+n*n)}function pr(e,t,r){var n=new B(3);return n[0]=e,n[1]=t,n[2]=r,n}function xr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Mr(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function yr(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function St(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function vt(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Tt(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function Er(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Rr(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function br(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function wr(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function Nr(e,t){return e[0]=ne(t[0]),e[1]=ne(t[1]),e[2]=ne(t[2]),e}function Or(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function Lr(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function pt(e,t){var r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2];return Math.sqrt(r*r+n*n+i*i)}function xt(e,t){var r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2];return r*r+n*n+i*i}function Mt(e){var t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function zr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Cr(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Pr(e,t){var r=t[0],n=t[1],i=t[2],s=r*r+n*n+i*i;return s>0&&(s=1/Math.sqrt(s)),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function Me(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Ir(e,t,r){var n=t[0],i=t[1],s=t[2],o=r[0],a=r[1],l=r[2];return e[0]=i*l-s*a,e[1]=s*o-n*l,e[2]=n*a-i*o,e}function Dr(e,t,r,n){var i=t[0],s=t[1],o=t[2];return e[0]=i+n*(r[0]-i),e[1]=s+n*(r[1]-s),e[2]=o+n*(r[2]-o),e}function Fr(e,t,r,n){var i=Math.acos(Math.min(Math.max(Me(t,r),-1),1)),s=Math.sin(i),o=Math.sin((1-n)*i)/s,a=Math.sin(n*i)/s;return e[0]=o*t[0]+a*r[0],e[1]=o*t[1]+a*r[1],e[2]=o*t[2]+a*r[2],e}function Gr(e,t,r,n,i,s){var o=s*s,a=o*(2*s-3)+1,l=o*(s-2)+s,c=o*(s-1),h=o*(3-2*s);return e[0]=t[0]*a+r[0]*l+n[0]*c+i[0]*h,e[1]=t[1]*a+r[1]*l+n[1]*c+i[1]*h,e[2]=t[2]*a+r[2]*l+n[2]*c+i[2]*h,e}function Br(e,t,r,n,i,s){var o=1-s,a=o*o,l=s*s,c=a*o,h=3*s*a,u=3*l*o,f=l*s;return e[0]=t[0]*c+r[0]*h+n[0]*u+i[0]*f,e[1]=t[1]*c+r[1]*h+n[1]*u+i[1]*f,e[2]=t[2]*c+r[2]*h+n[2]*u+i[2]*f,e}function Ur(e,t){t=t===void 0?1:t;var r=xe()*2*Math.PI,n=xe()*2-1,i=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*i,e[1]=Math.sin(r)*i,e[2]=n*t,e}function kr(e,t,r){var n=t[0],i=t[1],s=t[2],o=r[3]*n+r[7]*i+r[11]*s+r[15];return o=o||1,e[0]=(r[0]*n+r[4]*i+r[8]*s+r[12])/o,e[1]=(r[1]*n+r[5]*i+r[9]*s+r[13])/o,e[2]=(r[2]*n+r[6]*i+r[10]*s+r[14])/o,e}function Hr(e,t,r){var n=t[0],i=t[1],s=t[2];return e[0]=n*r[0]+i*r[3]+s*r[6],e[1]=n*r[1]+i*r[4]+s*r[7],e[2]=n*r[2]+i*r[5]+s*r[8],e}function Wr(e,t,r){var n=r[0],i=r[1],s=r[2],o=r[3],a=t[0],l=t[1],c=t[2],h=i*c-s*l,u=s*a-n*c,f=n*l-i*a;return h=h+h,u=u+u,f=f+f,e[0]=a+o*h+i*f-s*u,e[1]=l+o*u+s*h-n*f,e[2]=c+o*f+n*u-i*h,e}function Vr(e,t,r,n){var i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[0],s[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),s[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function Xr(e,t,r,n){var i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),s[1]=i[1],s[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function Kr(e,t,r,n){var i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),s[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),s[2]=i[2],e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function Yr(e,t){var r=e[0],n=e[1],i=e[2],s=t[0],o=t[1],a=t[2],l=Math.sqrt((r*r+n*n+i*i)*(s*s+o*o+a*a)),c=l&&Me(e,t)/l;return Math.acos(Math.min(Math.max(c,-1),1))}function qr(e){return e[0]=0,e[1]=0,e[2]=0,e}function Zr(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function Jr(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function jr(e,t){var r=e[0],n=e[1],i=e[2],s=t[0],o=t[1],a=t[2];return Math.abs(r-s)<=re*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-o)<=re*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-a)<=re*Math.max(1,Math.abs(i),Math.abs(a))}var $r=St,Qr=vt,en=Tt,tn=pt,rn=xt,nn=At,sn=Mt,on=(function(){var e=gt();return function(t,r,n,i,s,o){var a,l;for(r||(r=3),n||(n=0),i?l=Math.min(i*r+n,t.length):l=t.length,a=n;a<l;a+=r)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],s(e,e,o),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2];return t}})();var yt=e=>ie.fromValues(e.x,e.y,e.z),an=(e,t)=>{e.bobAngles=yt(t.angles),e.bobOffset=yt(t.offset)};var ln={runPitch:.002,runRoll:.01,bobUp:.005,bobPitch:.002,bobRoll:.002,maxBobHeight:6,maxBobAngle:1.2};function cn(e){return{x:Math.max(-14,Math.min(14,e.x)),y:Math.max(-14,Math.min(14,e.y)),z:Math.max(-22,Math.min(30,e.z))}}function un(e,t,r){return t?e>210?r/400:e>100?r/800:r/1600:0}function fn(e,t,r,n,i){if(t<5)return{bobTime:0,bobCycle:0,bobCycleRun:0,bobFracSin:0};let s=un(t,n,i),o=e+s,l=K(r,N.Ducked)&&n?o*4:o;return{bobTime:o,bobCycle:Math.floor(l),bobCycleRun:Math.floor(o),bobFracSin:Math.abs(Math.sin(l*Math.PI))}}var ye=class{constructor(t={}){this.bobTime=0;this.bobCycle=0;this.bobCycleRun=0;this.bobFracSin=0;this.settings={...ln,...t}}addKick(t){t.durationMs<=0||(this.kick={...t,remainingMs:t.durationMs})}get last(){return this.lastSample}sample(t,r){let{forward:n,right:i}=P(q({pmFlags:t.pmFlags,cmdAngles:t.viewAngles,deltaAngles:t.deltaAngles??ze}).viewangles),s=Math.sqrt(t.velocity.x*t.velocity.x+t.velocity.y*t.velocity.y),o=K(t.pmFlags,N.OnGround),a=fn(this.bobTime,s,t.pmFlags,o,r);this.bobTime=a.bobTime,this.bobCycle=a.bobCycle,this.bobCycleRun=a.bobCycleRun,this.bobFracSin=a.bobFracSin;let l=b(t.velocity,n)*this.settings.runPitch,c=b(t.velocity,i),h=c<0?-1:1,f=Math.abs(c)*this.settings.runRoll;f>2&&(f=2),f*=h;let _=this.bobFracSin*this.settings.bobPitch*s,d=this.bobFracSin*this.settings.bobRoll*s;K(t.pmFlags,N.Ducked)&&o&&(_*=6,d*=6),l+=Math.min(_,this.settings.maxBobAngle),d=Math.min(d,this.settings.maxBobAngle),this.bobCycle&1&&(d=-d),f+=d;let g=Math.min(this.bobFracSin*s*this.settings.bobUp,this.settings.maxBobHeight),x=0,R=0,M=0,L=0,U=0;if(this.kick&&this.kick.remainingMs>0){let D=Math.max(0,Math.min(1,this.kick.remainingMs/this.kick.durationMs));x+=D*this.kick.pitch,R+=D*this.kick.roll,this.kick.origin&&(M+=D*this.kick.origin.x,L+=D*this.kick.origin.y,U+=D*this.kick.origin.z),this.kick.remainingMs=Math.max(0,this.kick.remainingMs-r),this.kick.remainingMs===0&&(this.kick=void 0)}let Rt={x:l+x,y:0,z:f+R},bt={x:M,y:L,z:g+U},Ne={angles:Rt,offset:cn(bt),bobCycle:this.bobCycle,bobCycleRun:this.bobCycleRun,bobFracSin:this.bobFracSin,xyspeed:s};return this.lastSample=Ne,Ne}};var hn={pmFriction:6,pmStopSpeed:100,pmAccelerate:10,pmAirAccelerate:1,pmWaterAccelerate:4,pmWaterFriction:1,pmMaxSpeed:300,pmDuckSpeed:100,pmWaterSpeed:400,groundIsSlick:!1,errorTolerance:.1,errorSnapThreshold:10},dn=800,T={x:0,y:0,z:0};var _n=64;function I(){return{origin:T,velocity:T,viewAngles:T,onGround:!1,pmFlags:N.OnGround,pmType:Y.Normal,waterLevel:ge.None,watertype:0,gravity:dn,deltaAngles:T,mins:{x:-16,y:-16,z:-24},maxs:{x:16,y:16,z:32},damageAlpha:0,damageIndicators:[],blend:[0,0,0,0],stats:[],kick_angles:T,kick_origin:T,gunoffset:T,gunangles:T,gunindex:0,pm_time:0,pm_type:Y.Normal,pm_flags:N.OnGround,gun_frame:0,rdflags:0,fov:90,renderfx:0,pickupIcon:void 0,centerPrint:void 0,notify:void 0,client:void 0,health:0,armor:0,ammo:0}}function Ee(e){return e?{...I(),...e,origin:{...e.origin},velocity:{...e.velocity},viewAngles:{...e.viewAngles},deltaAngles:e.deltaAngles?{...e.deltaAngles}:T,blend:e.blend?[...e.blend]:[0,0,0,0],damageIndicators:e.damageIndicators?[...e.damageIndicators]:[],stats:e.stats?[...e.stats]:[]}:I()}function p(e,t,r){return e+(t-e)*r}function Re(e,t,r){let n=ue(t-e);return n>180&&(n-=360),ue(e+n*r)}function mn(e,t,r){let n=Math.max(0,Math.min(r,1));return{...t,origin:{x:p(e.origin.x,t.origin.x,n),y:p(e.origin.y,t.origin.y,n),z:p(e.origin.z,t.origin.z,n)},velocity:{x:p(e.velocity.x,t.velocity.x,n),y:p(e.velocity.y,t.velocity.y,n),z:p(e.velocity.z,t.velocity.z,n)},viewAngles:{x:Re(e.viewAngles.x,t.viewAngles.x,n),y:Re(e.viewAngles.y,t.viewAngles.y,n),z:Re(e.viewAngles.z,t.viewAngles.z,n)},damageAlpha:p(e.damageAlpha,t.damageAlpha,n),blend:[p(e.blend[0],t.blend[0],n),p(e.blend[1],t.blend[1],n),p(e.blend[2],t.blend[2],n),p(e.blend[3],t.blend[3],n)],health:p(e.health||0,t.health||0,n),armor:p(e.armor||0,t.armor||0,n),ammo:p(e.ammo||0,t.ammo||0,n)}}function Et(e,t,r,n,i){let s={forwardmove:t.forwardmove,sidemove:t.sidemove,upmove:t.upmove,buttons:t.buttons,angles:t.angles},o=Z(e,s,n,i),{viewangles:a}=q({pmFlags:e.pmFlags,cmdAngles:t.angles,deltaAngles:e.deltaAngles??T});return{...o,viewAngles:a}}var be=class{constructor(t,r={}){this.enabled=!0;this.baseFrame={frame:0,timeMs:0,state:I()};this.commands=[];this.predicted=I();this.predictionError=T;this.settings={...hn,...r},this.physics=t,this.predicted=this.baseFrame.state??I()}setPredictionEnabled(t){this.enabled=t}setAuthoritative(t){let r=Ee(t.state);if(t.frame<=this.baseFrame.frame)return this.predicted;if(this.enabled){let n,i=this.commands.filter(s=>s.sequence<=t.frame&&s.sequence>this.baseFrame.frame);if(i.length>0||this.baseFrame.frame===t.frame){let s=Ee(this.baseFrame.state);for(let o of i)s=Et(s,o,this.settings,this.physics.trace,this.physics.pointContents);n=s}if(n){let s=Ce(n.origin,r.origin),o=O(s);o>this.settings.errorSnapThreshold?this.predictionError=T:o>this.settings.errorTolerance?this.predictionError=s:this.predictionError=T}else this.predictionError=T}else this.predictionError=T;return this.baseFrame={...t,state:r},this.commands=this.commands.filter(n=>n.sequence>t.frame),this.recompute()}getPredictionError(){return this.predictionError}decayError(t){let r=O(this.predictionError);if(r>0){let n=r*10*t,i=Math.max(0,r-n)/r;this.predictionError=C(this.predictionError,i)}}enqueueCommand(t){return this.commands.push(t),this.commands.length>_n&&this.commands.shift(),this.recompute()}getCommand(t){return this.commands.find(r=>r.sequence===t)}getPredictedState(){return this.predicted}recompute(){let t=Ee(this.baseFrame.state);if(this.enabled)for(let r of this.commands)t=Et(t,r,this.settings,this.physics.trace,this.physics.pointContents);return this.predicted=t,t}};var m=null,we=null,gn=null;function An(){if(!m){console.error("CGame Init: cgame imports not set");return}m.Com_Print(`===== CGame Initialization =====
7
+ `),ft(m),we=m.Cvar_Get("cg_predict","1",0),gn=m.Cvar_Get("cg_showmiss","0",0),m.Com_Print(`CGame initialized
8
+ `)}function Sn(){m&&m.Com_Print(`CGame shutdown
9
+ `),m=null}function vn(e,t,r,n,i,s,o){dt(e,t,r,n,i,s,o)}function Tn(){ht()}function pn(e){return 0}function xn(e){return e.stats[y.STAT_ACTIVE_WHEEL_WEAPON]??0}function Mn(e){let t=[],r=e.stats[y.STAT_WEAPONS_OWNED_1]||0,n=e.stats[y.STAT_WEAPONS_OWNED_2]||0,i=r|n<<16;for(let s=0;s<J.length;s++)i&1<<s&&t.push(s);return t}function yn(e,t){if(t<0||t>=J.length)return 0;let r=J[t],n=qe[r];return n===null?-1:Xe(e.stats,n)}function En(e){let t=0,r=Object.values(Ae);for(let n of r)Ke(e.stats,n)>0&&t++;return t}function Rn(e){return e.stats[y.STAT_HIT_MARKER]??0}function bn(e){let t=e;if(!t||!t.s||!t.cmd||!m||we&&we.value===0)return;let r=(s,o,a,l)=>{let c={x:0,y:0,z:0};return m.PM_Trace(s,o,a||c,l||c)},n=s=>{let o={x:0,y:0,z:0};return m.PM_Trace(s,s,o,o).contents||0},i=Z(t.s,t.cmd,r,n);t.s.origin=i.origin,t.s.velocity=i.velocity,t.s.onGround=i.onGround,t.s.waterLevel=i.waterLevel}function wn(e,t){m&&mt(m,e,t)}function Nn(e,t,r){if(!m)return;G().setCenterPrint(e,m.CL_ClientTime())}function On(e,t,r){if(!m)return;G().addNotification(t,r,m.CL_ClientTime())}function Ln(e){G().clearNotifications()}function zn(e){G().clearCenterPrint()}function Cn(e,t){if(!m)return;_t().addSubtitle(e,m.CL_ClientTime())}function Pn(e){return{x:0,y:0,z:0}}function In(e){return null}function Dn(e){return m=e,{Init:An,Shutdown:Sn,DrawHUD:vn,TouchPics:Tn,LayoutFlags:pn,GetActiveWeaponWheelWeapon:xn,GetOwnedWeaponWheelWeapons:Mn,GetWeaponWheelAmmoCount:yn,GetPowerupWheelCount:En,GetHitMarkerDamage:Rn,Pmove:bn,ParseConfigString:wn,ParseCenterPrint:Nn,NotifyMessage:On,ShowSubtitle:Cn,ClearNotify:Ln,ClearCenterprint:zn,GetMonsterFlashOffset:Pn,GetExtension:In}}return zt(Fn);})();
10
+ //# sourceMappingURL=index.global.js.map