quake2ts 0.0.7 → 0.0.39
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.
- package/README.md +425 -0
- package/apps/viewer/dist/browser/index.global.js +1 -1
- package/apps/viewer/dist/browser/index.global.js.map +1 -1
- package/apps/viewer/dist/cjs/index.cjs +2097 -295
- package/apps/viewer/dist/cjs/index.cjs.map +1 -1
- package/apps/viewer/dist/esm/index.js +2097 -295
- package/apps/viewer/dist/esm/index.js.map +1 -1
- package/apps/viewer/dist/tsconfig.tsbuildinfo +1 -1
- package/apps/viewer/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
- package/packages/client/dist/browser/index.global.js +1 -1
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +1200 -13
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +1186 -12
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/client/dist/types/index.d.ts +14 -6
- package/packages/client/dist/types/index.d.ts.map +1 -1
- package/packages/client/dist/types/input/bindings.d.ts +18 -0
- package/packages/client/dist/types/input/bindings.d.ts.map +1 -0
- package/packages/client/dist/types/input/command-buffer.d.ts +15 -0
- package/packages/client/dist/types/input/command-buffer.d.ts.map +1 -0
- package/packages/client/dist/types/input/controller.d.ts +125 -0
- package/packages/client/dist/types/input/controller.d.ts.map +1 -0
- package/packages/client/dist/types/prediction.d.ts +38 -0
- package/packages/client/dist/types/prediction.d.ts.map +1 -0
- package/packages/client/dist/types/view-effects.d.ts +41 -0
- package/packages/client/dist/types/view-effects.d.ts.map +1 -0
- package/packages/engine/dist/browser/index.global.js +257 -1
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +2408 -2
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +2340 -2
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/assets/animation.d.ts +33 -0
- package/packages/engine/dist/types/assets/animation.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/audio.d.ts +21 -0
- package/packages/engine/dist/types/assets/audio.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/bsp.d.ts +1 -1
- package/packages/engine/dist/types/assets/bsp.d.ts.map +1 -1
- package/packages/engine/dist/types/assets/ingestion.d.ts +31 -0
- package/packages/engine/dist/types/assets/ingestion.d.ts.map +1 -1
- package/packages/engine/dist/types/assets/manager.d.ts +43 -0
- package/packages/engine/dist/types/assets/manager.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/md3.d.ts +69 -0
- package/packages/engine/dist/types/assets/md3.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/ogg.d.ts +12 -0
- package/packages/engine/dist/types/assets/ogg.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/pakIndexStore.d.ts +19 -0
- package/packages/engine/dist/types/assets/pakIndexStore.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/pakValidation.d.ts +28 -0
- package/packages/engine/dist/types/assets/pakValidation.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/pcx.d.ts +13 -0
- package/packages/engine/dist/types/assets/pcx.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/texture.d.ts +29 -0
- package/packages/engine/dist/types/assets/texture.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/wal.d.ts +21 -0
- package/packages/engine/dist/types/assets/wal.d.ts.map +1 -0
- package/packages/engine/dist/types/assets/wav.d.ts +11 -0
- package/packages/engine/dist/types/assets/wav.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/api.d.ts +29 -0
- package/packages/engine/dist/types/audio/api.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/channels.d.ts +15 -0
- package/packages/engine/dist/types/audio/channels.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/constants.d.ts +24 -0
- package/packages/engine/dist/types/audio/constants.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/context.d.ts +67 -0
- package/packages/engine/dist/types/audio/context.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/music.d.ts +42 -0
- package/packages/engine/dist/types/audio/music.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/precache.d.ts +28 -0
- package/packages/engine/dist/types/audio/precache.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/registry.d.ts +13 -0
- package/packages/engine/dist/types/audio/registry.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/spatialization.d.ts +14 -0
- package/packages/engine/dist/types/audio/spatialization.d.ts.map +1 -0
- package/packages/engine/dist/types/audio/system.d.ts +101 -0
- package/packages/engine/dist/types/audio/system.d.ts.map +1 -0
- package/packages/engine/dist/types/configstrings.d.ts +1 -0
- package/packages/engine/dist/types/configstrings.d.ts.map +1 -1
- package/packages/engine/dist/types/index.d.ts +26 -1
- package/packages/engine/dist/types/index.d.ts.map +1 -1
- package/packages/engine/dist/types/render/bspPipeline.d.ts +42 -0
- package/packages/engine/dist/types/render/bspPipeline.d.ts.map +1 -0
- package/packages/engine/dist/types/render/bspTraversal.d.ts +11 -0
- package/packages/engine/dist/types/render/bspTraversal.d.ts.map +1 -0
- package/packages/engine/dist/types/render/culling.d.ts +8 -0
- package/packages/engine/dist/types/render/culling.d.ts.map +1 -0
- package/packages/engine/dist/types/render/md2Pipeline.d.ts +51 -0
- package/packages/engine/dist/types/render/md2Pipeline.d.ts.map +1 -0
- package/packages/engine/dist/types/render/resources.d.ts +10 -0
- package/packages/engine/dist/types/render/resources.d.ts.map +1 -1
- package/packages/engine/dist/types/render/skybox.d.ts +26 -0
- package/packages/engine/dist/types/render/skybox.d.ts.map +1 -0
- package/packages/game/dist/browser/index.global.js +1 -1
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +2926 -116
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +2863 -115
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/ai/constants.d.ts +13 -0
- package/packages/game/dist/types/ai/constants.d.ts.map +1 -0
- package/packages/game/dist/types/ai/index.d.ts +4 -0
- package/packages/game/dist/types/ai/index.d.ts.map +1 -0
- package/packages/game/dist/types/ai/movement.d.ts +20 -0
- package/packages/game/dist/types/ai/movement.d.ts.map +1 -0
- package/packages/game/dist/types/ai/perception.d.ts +21 -0
- package/packages/game/dist/types/ai/perception.d.ts.map +1 -0
- package/packages/game/dist/types/checksum.d.ts +3 -0
- package/packages/game/dist/types/checksum.d.ts.map +1 -0
- package/packages/game/dist/types/combat/armor.d.ts +39 -0
- package/packages/game/dist/types/combat/armor.d.ts.map +1 -0
- package/packages/game/dist/types/combat/damage.d.ts +52 -0
- package/packages/game/dist/types/combat/damage.d.ts.map +1 -0
- package/packages/game/dist/types/combat/damageFlags.d.ts +15 -0
- package/packages/game/dist/types/combat/damageFlags.d.ts.map +1 -0
- package/packages/game/dist/types/combat/damageMods.d.ts +79 -0
- package/packages/game/dist/types/combat/damageMods.d.ts.map +1 -0
- package/packages/game/dist/types/combat/index.d.ts +6 -0
- package/packages/game/dist/types/combat/index.d.ts.map +1 -0
- package/packages/game/dist/types/combat/specialDamage.d.ts +88 -0
- package/packages/game/dist/types/combat/specialDamage.d.ts.map +1 -0
- package/packages/game/dist/types/entities/entity.d.ts +46 -2
- package/packages/game/dist/types/entities/entity.d.ts.map +1 -1
- package/packages/game/dist/types/entities/index.d.ts +6 -2
- package/packages/game/dist/types/entities/index.d.ts.map +1 -1
- package/packages/game/dist/types/entities/pool.d.ts +9 -0
- package/packages/game/dist/types/entities/pool.d.ts.map +1 -1
- package/packages/game/dist/types/entities/spawn.d.ts +27 -0
- package/packages/game/dist/types/entities/spawn.d.ts.map +1 -0
- package/packages/game/dist/types/entities/system.d.ts +32 -1
- package/packages/game/dist/types/entities/system.d.ts.map +1 -1
- package/packages/game/dist/types/entities/thinkScheduler.d.ts +6 -0
- package/packages/game/dist/types/entities/thinkScheduler.d.ts.map +1 -1
- package/packages/game/dist/types/entities/triggers.d.ts +3 -0
- package/packages/game/dist/types/entities/triggers.d.ts.map +1 -0
- package/packages/game/dist/types/entities/utils.d.ts +4 -0
- package/packages/game/dist/types/entities/utils.d.ts.map +1 -0
- package/packages/game/dist/types/index.d.ts +5 -0
- package/packages/game/dist/types/index.d.ts.map +1 -1
- package/packages/game/dist/types/inventory/ammo.d.ts +17 -0
- package/packages/game/dist/types/inventory/ammo.d.ts.map +1 -0
- package/packages/game/dist/types/inventory/index.d.ts +2 -0
- package/packages/game/dist/types/inventory/index.d.ts.map +1 -0
- package/packages/game/dist/types/level.d.ts +1 -0
- package/packages/game/dist/types/level.d.ts.map +1 -1
- package/packages/game/dist/types/save/index.d.ts +4 -0
- package/packages/game/dist/types/save/index.d.ts.map +1 -0
- package/packages/game/dist/types/save/rerelease.d.ts +25 -0
- package/packages/game/dist/types/save/rerelease.d.ts.map +1 -0
- package/packages/game/dist/types/save/save.d.ts +49 -0
- package/packages/game/dist/types/save/save.d.ts.map +1 -0
- package/packages/game/dist/types/save/storage.d.ts +37 -0
- package/packages/game/dist/types/save/storage.d.ts.map +1 -0
- package/packages/shared/dist/browser/index.global.js +1 -1
- package/packages/shared/dist/browser/index.global.js.map +1 -1
- package/packages/shared/dist/cjs/index.cjs +638 -9
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +616 -9
- package/packages/shared/dist/esm/index.js.map +1 -1
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/types/bsp/collision.d.ts +56 -0
- package/packages/shared/dist/types/bsp/collision.d.ts.map +1 -1
- package/packages/shared/dist/types/bsp/contents.d.ts +1 -0
- package/packages/shared/dist/types/bsp/contents.d.ts.map +1 -1
- package/packages/shared/dist/types/index.d.ts +2 -0
- package/packages/shared/dist/types/index.d.ts.map +1 -1
- package/packages/shared/dist/types/math/random.d.ts +11 -0
- package/packages/shared/dist/types/math/random.d.ts.map +1 -1
- package/packages/shared/dist/types/protocol/contracts.d.ts +17 -0
- package/packages/shared/dist/types/protocol/contracts.d.ts.map +1 -0
- package/packages/shared/dist/types/protocol/usercmd.d.ts +30 -0
- package/packages/shared/dist/types/protocol/usercmd.d.ts.map +1 -0
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Quake2Shared=(()=>{var Pe=Object.defineProperty;var pt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var ft=Object.prototype.hasOwnProperty;var xt=(t,e)=>{for(var o in e)Pe(t,o,{get:e[o],enumerable:!0})},Tt=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yt(e))!ft.call(t,n)&&n!==o&&Pe(t,n,{get:()=>e[n],enumerable:!(r=pt(e,n))||r.enumerable});return t};var St=t=>Tt(Pe({},"__esModule",{value:!0}),t);var Fr={};xt(Fr,{CONTENTS_AREAPORTAL:()=>jr,CONTENTS_AUX:()=>Ir,CONTENTS_CURRENT_0:()=>Ut,CONTENTS_CURRENT_180:()=>Jt,CONTENTS_CURRENT_270:()=>Ht,CONTENTS_CURRENT_90:()=>Gt,CONTENTS_CURRENT_DOWN:()=>Kt,CONTENTS_CURRENT_UP:()=>jt,CONTENTS_DEADMONSTER:()=>qr,CONTENTS_DETAIL:()=>Qr,CONTENTS_LADDER:()=>Ue,CONTENTS_LAVA:()=>Br,CONTENTS_MIST:()=>Jr,CONTENTS_MONSTER:()=>Zr,CONTENTS_MONSTERCLIP:()=>Xr,CONTENTS_NONE:()=>ye,CONTENTS_NO_WATERJUMP:()=>Bt,CONTENTS_ORIGIN:()=>Yr,CONTENTS_PLAYER:()=>en,CONTENTS_PLAYERCLIP:()=>Kr,CONTENTS_PROJECTILE:()=>tn,CONTENTS_PROJECTILECLIP:()=>Hr,CONTENTS_SLIME:()=>Ur,CONTENTS_SOLID:()=>Wr,CONTENTS_TRANSLUCENT:()=>$r,CONTENTS_WATER:()=>Gr,CONTENTS_WINDOW:()=>kr,CS_MAX_STRING_LENGTH:()=>kn,CS_MAX_STRING_LENGTH_OLD:()=>In,ConfigStringIndex:()=>$,CvarFlags:()=>He,DIST_EPSILON:()=>zn,LAST_VISIBLE_CONTENTS:()=>on,MASK_ALL:()=>Sn,MASK_BLOCK_SIGHT:()=>bn,MASK_CURRENT:()=>Xt,MASK_DEADSOLID:()=>Nn,MASK_LADDER_NAV_SOLID:()=>hn,MASK_MONSTERSOLID:()=>Cn,MASK_NAV_SOLID:()=>_n,MASK_OPAQUE:()=>En,MASK_PLAYERSOLID:()=>Vn,MASK_PROJECTILE:()=>An,MASK_SHOT:()=>Pn,MASK_SOLID:()=>ve,MASK_WALK_NAV_SOLID:()=>vn,MASK_WATER:()=>fe,MAX_CLIENTS:()=>lo,MAX_CONFIGSTRINGS:()=>To,MAX_EDICTS:()=>Wn,MAX_GENERAL:()=>fo,MAX_IMAGES:()=>po,MAX_ITEMS:()=>yo,MAX_LIGHTSTYLES:()=>io,MAX_MODELS:()=>mo,MAX_OSPATH:()=>wn,MAX_QPATH:()=>Dn,MAX_SHADOW_LIGHTS:()=>xo,MAX_SOUNDS:()=>uo,MAX_STRING_CHARS:()=>gn,MAX_STRING_TOKENS:()=>Mn,MAX_TOKEN_CHARS:()=>Ln,MAX_WHEEL_ITEMS:()=>Oe,MersenneTwister19937:()=>de,PITCH:()=>me,PlaneSide:()=>Ge,PlayerButton:()=>Y,PmFlag:()=>X,PmType:()=>te,ROLL:()=>_e,RandomGenerator:()=>pe,SLIDEMOVE_BLOCKED_FLOOR:()=>Ke,SLIDEMOVE_BLOCKED_WALL:()=>Xe,STOP_EPSILON:()=>H,SURF_ALPHATEST:()=>pn,SURF_FLOWING:()=>un,SURF_LIGHT:()=>nn,SURF_N64_SCROLL_FLIP:()=>Tn,SURF_N64_SCROLL_X:()=>fn,SURF_N64_SCROLL_Y:()=>xn,SURF_N64_UV:()=>yn,SURF_NODRAW:()=>dn,SURF_NONE:()=>rn,SURF_SKY:()=>sn,SURF_SLICK:()=>an,SURF_TRANS33:()=>ln,SURF_TRANS66:()=>mn,SURF_WARP:()=>cn,WaterLevel:()=>ee,YAW:()=>ue,ZERO_VEC3:()=>O,addBlendColor:()=>kt,addContents:()=>qt,addPmFlag:()=>D,addPointToBounds:()=>_t,addVec3:()=>_,angleMod:()=>Dt,angleVectors:()=>he,applyPmoveAccelerate:()=>G,applyPmoveAddCurrents:()=>Se,applyPmoveAirAccelerate:()=>Re,applyPmoveAirMove:()=>ur,applyPmoveFlyMove:()=>ko,applyPmoveFriction:()=>No,applyPmoveWaterMove:()=>dr,boxOnPlaneSide:()=>ro,boxesIntersect:()=>ht,buildAirGroundWish:()=>Eo,buildCollisionModel:()=>to,buildWaterWish:()=>Po,categorizePosition:()=>ir,checkDuckState:()=>Yo,checkJump:()=>Jo,checkSpecialMovement:()=>_r,clampViewAngles:()=>Rr,clipBoxToBrush:()=>so,clipVelocityAgainstPlanes:()=>vt,clipVelocityVec3:()=>K,closestPointToBox:()=>Et,combineSurfaceFlags:()=>eo,computePlaneSignBits:()=>Je,computePlayerDimensions:()=>Ne,concatRotationMatrices:()=>be,configStringSize:()=>So,createDefaultTrace:()=>co,createEmptyBounds3:()=>bt,createRandomGenerator:()=>It,crossVec3:()=>j,currentVectorFromContents:()=>De,degToRad:()=>le,distanceBetweenBoxesSquared:()=>Pt,dotVec3:()=>R,fixStuckObjectGeneric:()=>Me,getWaterLevel:()=>se,goodPosition:()=>ke,groundCurrentVelocity:()=>nt,hasAllContents:()=>Yt,hasAnyContents:()=>Zt,hasPmFlag:()=>F,hasSurfaceFlags:()=>$t,initialSnapPosition:()=>Ar,isAtLeastWaistDeep:()=>ze,isUnderwater:()=>Vo,lengthSquaredVec3:()=>Q,lengthVec3:()=>L,lerpAngle:()=>Lt,multiplyVec3:()=>Nt,negateVec3:()=>Ct,normalizeVec3:()=>z,perpendicularVec3:()=>Be,planeDistanceToPoint:()=>Ae,pmoveCmdScale:()=>Co,pointInsideBrush:()=>no,pointOnPlaneSide:()=>oo,projectPointOnPlane:()=>Ie,projectSourceVec3:()=>Ot,projectSourceVec3WithUp:()=>zt,radToDeg:()=>ie,removeContents:()=>Qt,removePmFlag:()=>w,resolveSlideMove:()=>Ye,rotatePointAroundVector:()=>Ft,scaleVec3:()=>h,slerpVec3:()=>Rt,slideClipVelocityVec3:()=>At,slideMove:()=>Fe,snapPosition:()=>vr,stepSlideMove:()=>Z,subtractVec3:()=>ce,testBoxInBrush:()=>ao,vectorToAngles:()=>Wt,vectorToYaw:()=>wt,waterCurrentVelocity:()=>rt});var O={x:0,y:0,z:0},H=.1,Vt=Math.PI/180;function _(t,e){return{x:t.x+e.x,y:t.y+e.y,z:t.z+e.z}}function ce(t,e){return{x:t.x-e.x,y:t.y-e.y,z:t.z-e.z}}function Nt(t,e){return{x:t.x*e.x,y:t.y*e.y,z:t.z*e.z}}function h(t,e){return{x:t.x*e,y:t.y*e,z:t.z*e}}function Ct(t){return h(t,-1)}function R(t,e){return t.x*e.x+t.y*e.y+t.z*e.z}function j(t,e){return{x:t.y*e.z-t.z*e.y,y:t.z*e.x-t.x*e.z,z:t.x*e.y-t.y*e.x}}function Q(t){return R(t,t)}function L(t){return Math.sqrt(Q(t))}function z(t){let e=L(t);return e===0?t:h(t,1/e)}function Ie(t,e){let o=1/R(e,e),r=R(e,t)*o;return ce(t,h(e,o*r))}function Be(t){let e=0,o=Math.abs(t.x);return Math.abs(t.y)<o&&(e=1,o=Math.abs(t.y)),Math.abs(t.z)<o&&(e=2),z(Ie(e===0?{x:1,y:0,z:0}:e===1?{x:0,y:1,z:0}:{x:0,y:0,z:1},t))}function Et(t,e,o){return{x:t.x<e.x?e.x:t.x>o.x?o.x:t.x,y:t.y<e.y?e.y:t.y>o.y?o.y:t.y,z:t.z<e.z?e.z:t.z>o.z?o.z:t.z}}function Pt(t,e,o,r){let n=0;if(e.x<o.x){let a=e.x-o.x;n+=a*a}else if(t.x>r.x){let a=t.x-r.x;n+=a*a}if(e.y<o.y){let a=e.y-o.y;n+=a*a}else if(t.y>r.y){let a=t.y-r.y;n+=a*a}if(e.z<o.z){let a=e.z-o.z;n+=a*a}else if(t.z>r.z){let a=t.z-r.z;n+=a*a}return n}function bt(){return{mins:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY,z:Number.POSITIVE_INFINITY},maxs:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY,z:Number.NEGATIVE_INFINITY}}}function _t(t,e){return{mins:{x:Math.min(e.mins.x,t.x),y:Math.min(e.mins.y,t.y),z:Math.min(e.mins.z,t.z)},maxs:{x:Math.max(e.maxs.x,t.x),y:Math.max(e.maxs.y,t.y),z:Math.max(e.maxs.z,t.z)}}}function ht(t,e){return t.mins.x<=e.maxs.x&&t.maxs.x>=e.mins.x&&t.mins.y<=e.maxs.y&&t.maxs.y>=e.mins.y&&t.mins.z<=e.maxs.z&&t.maxs.z>=e.mins.z}function K(t,e,o){let r=R(t,e)*o,n=t.x-e.x*r,a=t.y-e.y*r,s=t.z-e.z*r;return n>-H&&n<H&&(n=0),a>-H&&a<H&&(a=0),s>-H&&s<H&&(s=0),{x:n,y:a,z:s}}function vt(t,e,o,r){if(e.length===0)return t;let n=t;for(let a=0;a<e.length;a++){n=K(n,e[a],o);let s=0;for(;s<e.length&&!(s!==a&&R(n,e[s])<0);s++);if(s===e.length)return r&&R(n,r)<=0?O:n}if(e.length===2){let a=j(e[0],e[1]),s=R(a,t),c=h(a,s);return r&&R(c,r)<=0?O:c}return r&&R(n,r)<=0,O}function At(t,e,o){return K(t,e,o)}function Ot(t,e,o,r){return{x:t.x+o.x*e.x+r.x*e.y,y:t.y+o.y*e.x+r.y*e.y,z:t.z+o.z*e.x+r.z*e.y+e.z}}function zt(t,e,o,r,n){return{x:t.x+o.x*e.x+r.x*e.y+n.x*e.z,y:t.y+o.y*e.x+r.y*e.y+n.y*e.z,z:t.z+o.z*e.x+r.z*e.y+n.z*e.z}}function Rt(t,e,o){let r=R(t,e),n,a;if(Math.abs(r)>.9995)n=1-o,a=o;else{let s=Math.acos(r),c=Math.sin(s),m=Math.sin((1-o)*s),i=Math.sin(o*s);n=m/c,a=i/c}return{x:t.x*n+e.x*a,y:t.y*n+e.y*a,z:t.z*n+e.z*a}}function be(t,e){let o=n=>[t[n][0]*e[0][0]+t[n][1]*e[1][0]+t[n][2]*e[2][0],t[n][0]*e[0][1]+t[n][1]*e[1][1]+t[n][2]*e[2][1],t[n][0]*e[0][2]+t[n][1]*e[1][2]+t[n][2]*e[2][2]];return[o(0),o(1),o(2)]}function Ft(t,e,o){if(L(t)===0)return e;let n=z(t),a=Be(n),s=j(a,n),c=[[a.x,s.x,n.x],[a.y,s.y,n.y],[a.z,s.z,n.z]],m=[[c[0][0],c[1][0],c[2][0]],[c[0][1],c[1][1],c[2][1]],[c[0][2],c[1][2],c[2][2]]],i=o*Vt,u=Math.cos(i),l=Math.sin(i),y=[[u,l,0],[-l,u,0],[0,0,1]],p=be(be(c,y),m);return{x:p[0][0]*e.x+p[0][1]*e.y+p[0][2]*e.z,y:p[1][0]*e.x+p[1][1]*e.y+p[1][2]*e.z,z:p[2][0]*e.x+p[2][1]*e.y+p[2][2]*e.z}}var me=0,ue=1,_e=2,gt=Math.PI/180,Mt=180/Math.PI;function ne(t,e){switch(e){case me:return t.x;case ue:return t.y;case _e:default:return t.z}}function le(t){return t*gt}function ie(t){return t*Mt}function Lt(t,e,o){let r=e;return r-t>180?r-=360:r-t<-180&&(r+=360),t+o*(r-t)}function Dt(t){let e=t%360;return e<0?360+e:e}function he(t){let e=le(ne(t,ue)),o=le(ne(t,me)),r=le(ne(t,_e)),n=Math.sin(e),a=Math.cos(e),s=Math.sin(o),c=Math.cos(o),m=Math.sin(r),i=Math.cos(r),u={x:c*a,y:c*n,z:-s},l={x:-m*s*a-i*-n,y:-m*s*n-i*a,z:-m*c},y={x:i*s*a-m*-n,y:i*s*n-m*a,z:i*c};return{forward:u,right:l,up:y}}function wt(t){let e=ne(t,me),o=ne(t,ue);if(e===0)return o===0?0:o>0?90:270;let r=ie(Math.atan2(o,e));return r<0?r+360:r}function Wt(t){let e=t.x,o=t.y,r=t.z;if(o===0&&e===0)return{x:r>0?-90:-270,y:0,z:0};let n;e?n=ie(Math.atan2(o,e)):o>0?n=90:n=270,n<0&&(n+=360);let a=Math.sqrt(e*e+o*o),s=ie(Math.atan2(r,a));return s<0&&(s+=360),{x:-s,y:n,z:0}}function kt(t,e,o,r,n){if(r<=0)return n;let a=n[0],s=n[1],c=n[2],m=n[3],i=m+(1-m)*r;if(i<=0)return[0,0,0,0];let u=m/i,l=a*u+t*(1-u),y=s*u+e*(1-u),p=c*u+o*(1-u);return[l,y,p,i]}var de=class{constructor(e=5489){this.state=new Uint32Array(624);this.index=624;this.seed(e)}seed(e){this.state[0]=e>>>0;for(let o=1;o<624;o++){let r=this.state[o-1]^this.state[o-1]>>>30,n=Math.imul(r>>>0,1812433253)+o;this.state[o]=n>>>0}this.index=624}nextUint32(){this.index>=624&&this.twist();let e=this.state[this.index++];return e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0}twist(){for(let e=0;e<624;e++){let o=this.state[e]&2147483648|this.state[(e+1)%624]&2147483647,r=this.state[(e+397)%624]^o>>>1;(o&1)!==0&&(r^=2567483615),this.state[e]=r>>>0}this.index=0}},pe=class{constructor(e={}){this.mt=new de(e.seed)}frandom(){return this.mt.nextUint32()/4294967296}frandomRange(e,o){return e+(o-e)*this.frandom()}frandomMax(e){return this.frandomRange(0,e)}crandom(){return this.frandomRange(-1,1)}crandomOpen(){let e=Number.EPSILON;return this.frandomRange(-1+e,1)}irandomUint32(){return this.mt.nextUint32()}irandomRange(e,o){if(o-e<=1)return e;let r=o-e,n=4294967296-4294967296%r,a;do a=this.mt.nextUint32();while(a>=n);return e+a%r}irandom(e){return e<=0?0:this.irandomRange(0,e)}randomTimeRange(e,o){return o<=e?e:this.irandomRange(e,o)}randomTime(e){return this.irandom(e)}randomIndex(e){return this.irandom(e.length)}};function It(t){return new pe(t)}var ye=0,Wr=1,kr=2,Ir=4,Br=8,Ur=16,Gr=32,Jr=64,Bt=8192,Hr=16384,jr=32768,Kr=65536,Xr=131072,Ut=262144,Gt=524288,Jt=1048576,Ht=2097152,jt=4194304,Kt=8388608,Yr=16777216,Zr=33554432,qr=67108864,Qr=134217728,$r=268435456,Ue=536870912,en=1073741824,tn=-2147483648,on=64,rn=0,nn=1,an=2,sn=4,cn=8,ln=16,mn=32,un=64,dn=128,pn=33554432,yn=268435456,fn=536870912,xn=1073741824,Tn=-2147483648,Sn=4294967295,ve=3,Vn=1107361795,Nn=65539,Cn=1107427331,fe=56,En=25,Pn=1174405123,Xt=16515072,bn=1107296281,_n=65539,hn=3,vn=196611,An=1174421507;function Yt(t,e){return(t&e)===e}function Zt(t,e){return(t&e)!==0}function qt(t,e){return t|e}function Qt(t,e){return t&~e}function $t(t,e){return(t&e)===e}function eo(...t){let e=0;for(let o of t)e|=o;return e}var Ge=(r=>(r[r.FRONT=1]="FRONT",r[r.BACK=2]="BACK",r[r.CROSS=3]="CROSS",r))(Ge||{}),zn=.03125;function to(t){let e=t.planes.map(s=>({...s,signbits:Je(s.normal)})),o=t.nodes.map(s=>({plane:e[s.planenum],children:s.children})),r=t.brushes.map(s=>{let c=t.brushSides.slice(s.firstSide,s.firstSide+s.numSides).map(m=>({plane:e[m.planenum],surfaceFlags:m.surfaceFlags}));return{contents:s.contents,sides:c,checkcount:0}}),n=t.leaves.map(s=>({contents:s.contents,cluster:s.cluster,area:s.area,firstLeafBrush:s.firstLeafBrush,numLeafBrushes:s.numLeafBrushes})),a=t.bmodels.map(s=>({mins:s.mins,maxs:s.maxs,origin:s.origin,headnode:s.headnode}));return{planes:e,nodes:o,leaves:n,brushes:r,leafBrushes:t.leafBrushes,bmodels:a}}function Je(t){let e=0;return t.x<0&&(e|=1),t.y<0&&(e|=2),t.z<0&&(e|=4),e}function Ae(t,e){return t.normal.x*e.x+t.normal.y*e.y+t.normal.z*e.z-t.dist}function oo(t,e,o=0){let r=Ae(t,e);return r>o?1:r<-o?2:3}function ro(t,e,o,r=0){let n,a;switch(o.signbits){case 0:n=o.normal.x*e.x+o.normal.y*e.y+o.normal.z*e.z,a=o.normal.x*t.x+o.normal.y*t.y+o.normal.z*t.z;break;case 1:n=o.normal.x*t.x+o.normal.y*e.y+o.normal.z*e.z,a=o.normal.x*e.x+o.normal.y*t.y+o.normal.z*t.z;break;case 2:n=o.normal.x*e.x+o.normal.y*t.y+o.normal.z*e.z,a=o.normal.x*t.x+o.normal.y*e.y+o.normal.z*t.z;break;case 3:n=o.normal.x*t.x+o.normal.y*t.y+o.normal.z*e.z,a=o.normal.x*e.x+o.normal.y*e.y+o.normal.z*t.z;break;case 4:n=o.normal.x*e.x+o.normal.y*e.y+o.normal.z*t.z,a=o.normal.x*t.x+o.normal.y*t.y+o.normal.z*e.z;break;case 5:n=o.normal.x*t.x+o.normal.y*e.y+o.normal.z*t.z,a=o.normal.x*e.x+o.normal.y*t.y+o.normal.z*e.z;break;case 6:n=o.normal.x*e.x+o.normal.y*t.y+o.normal.z*t.z,a=o.normal.x*t.x+o.normal.y*e.y+o.normal.z*e.z;break;default:n=o.normal.x*t.x+o.normal.y*t.y+o.normal.z*t.z,a=o.normal.x*e.x+o.normal.y*e.y+o.normal.z*e.z;break}let s=0;return n-o.dist>=-r&&(s=1),a-o.dist<=r&&(s|=2),s}function no(t,e,o=.03125){for(let r of e.sides)if(Ae(r.plane,t)>o)return!1;return!0}function ao(t,e,o,r){for(let n of r.sides){let a=n.plane.normal.x*(n.plane.normal.x<0?o.x:e.x)+n.plane.normal.y*(n.plane.normal.y<0?o.y:e.y)+n.plane.normal.z*(n.plane.normal.z<0?o.z:e.z),s=n.plane.dist-a;if(t.x*n.plane.normal.x+t.y*n.plane.normal.y+t.z*n.plane.normal.z-s>0)return{startsolid:!1,allsolid:!1,contents:0}}return{startsolid:!0,allsolid:!0,contents:r.contents}}function so({start:t,end:e,mins:o,maxs:r,brush:n,trace:a}){if(n.sides.length===0)return;let s=o.x===0&&o.y===0&&o.z===0&&r.x===0&&r.y===0&&r.z===0,c=-1,m=1,i=null,u=null,l=!1,y=!1;for(let p of n.sides){let{plane:f}=p,S=f.dist;if(!s){let P=f.normal.x<0?r.x:o.x,E=f.normal.y<0?r.y:o.y,T=f.normal.z<0?r.z:o.z;S-=f.normal.x*P+f.normal.y*E+f.normal.z*T}let x=t.x*f.normal.x+t.y*f.normal.y+t.z*f.normal.z-S,N=e.x*f.normal.x+e.y*f.normal.y+e.z*f.normal.z-S;if(N>0&&(l=!0),x>0&&(y=!0),x>0&&N>=x)return;if(!(x<=0&&N<=0))if(x>N){let P=(x-.03125)/(x-N);P>c&&(c=P,i=f,u=p)}else{let P=(x+.03125)/(x-N);P<m&&(m=P)}}if(!y){a.startsolid=!0,l||(a.allsolid=!0);return}c<m&&c>-1&&c<a.fraction&&(a.fraction=c<0?0:c,a.plane=i,a.contents=n.contents,a.surfaceFlags=u?.surfaceFlags??0)}function co(){return{fraction:1,plane:null,contents:0,surfaceFlags:0,startsolid:!1,allsolid:!1}}var He=(s=>(s[s.None=0]="None",s[s.Archive=1]="Archive",s[s.UserInfo=2]="UserInfo",s[s.ServerInfo=4]="ServerInfo",s[s.Latch=8]="Latch",s[s.Cheat=16]="Cheat",s))(He||{});var gn=1024,Mn=80,Ln=512,Dn=64,wn=128,lo=256,Wn=8192,io=256,mo=8192,uo=2048,po=512,yo=256,fo=512,xo=256,Oe=32,kn=96,In=64,$=(d=>(d[d.Name=0]="Name",d[d.CdTrack=1]="CdTrack",d[d.Sky=2]="Sky",d[d.SkyAxis=3]="SkyAxis",d[d.SkyRotate=4]="SkyRotate",d[d.StatusBar=5]="StatusBar",d[d.AirAccel=59]="AirAccel",d[d.MaxClients=60]="MaxClients",d[d.MapChecksum=61]="MapChecksum",d[d.Models=62]="Models",d[d.Sounds=62+mo]="Sounds",d[d.Images=d.Sounds+uo]="Images",d[d.Lights=d.Images+po]="Lights",d[d.ShadowLights=d.Lights+io]="ShadowLights",d[d.Items=d.ShadowLights+xo]="Items",d[d.PlayerSkins=d.Items+yo]="PlayerSkins",d[d.General=d.PlayerSkins+lo]="General",d[d.WheelWeapons=d.General+fo]="WheelWeapons",d[d.WheelAmmo=d.WheelWeapons+Oe]="WheelAmmo",d[d.WheelPowerups=d.WheelAmmo+Oe]="WheelPowerups",d[d.CdLoopCount=d.WheelPowerups+Oe]="CdLoopCount",d[d.GameStyle=d.CdLoopCount+1]="GameStyle",d[d.MaxConfigStrings=d.GameStyle+1]="MaxConfigStrings",d))($||{}),To=$.MaxConfigStrings;function So(t){return t>=5&&t<59?96*(59-t):t>=$.General&&t<$.WheelWeapons?96*($.MaxConfigStrings-t):96}var ee=(n=>(n[n.None=0]="None",n[n.Feet=1]="Feet",n[n.Waist=2]="Waist",n[n.Under=3]="Under",n))(ee||{});function ze(t){return t>=2}function Vo(t){return t===3}var X=(l=>(l[l.Ducked=1]="Ducked",l[l.JumpHeld=2]="JumpHeld",l[l.OnGround=4]="OnGround",l[l.TimeWaterJump=8]="TimeWaterJump",l[l.TimeLand=16]="TimeLand",l[l.TimeTeleport=32]="TimeTeleport",l[l.NoPositionalPrediction=64]="NoPositionalPrediction",l[l.OnLadder=128]="OnLadder",l[l.NoAngularPrediction=256]="NoAngularPrediction",l[l.IgnorePlayerCollision=512]="IgnorePlayerCollision",l[l.TimeTrick=1024]="TimeTrick",l))(X||{});function F(t,e){return(t&e)!==0}function D(t,e){return t|e}function w(t,e){return t&~e}var te=(c=>(c[c.Normal=0]="Normal",c[c.Grapple=1]="Grapple",c[c.NoClip=2]="NoClip",c[c.Spectator=3]="Spectator",c[c.Dead=4]="Dead",c[c.Gib=5]="Gib",c[c.Freeze=6]="Freeze",c))(te||{}),Y=(c=>(c[c.None=0]="None",c[c.Attack=1]="Attack",c[c.Use=2]="Use",c[c.Holster=4]="Holster",c[c.Jump=8]="Jump",c[c.Crouch=16]="Crouch",c[c.Any=128]="Any",c))(Y||{});function No(t){let{velocity:e,frametime:o,onGround:r,groundIsSlick:n,onLadder:a,waterlevel:s,pmFriction:c,pmStopSpeed:m,pmWaterFriction:i}=t,u=L(e);if(u<1)return{x:0,y:0,z:e.z};let l=0;if(r&&!n||a){let f=u<m?m:u;l+=f*c*o}s>0&&!a&&(l+=u*i*s*o);let y=u-l;if(y<0&&(y=0),y===u)return e;let p=y/u;return h(e,p)}function G(t){let{velocity:e,wishdir:o,wishspeed:r,accel:n,frametime:a}=t,s=R(e,o),c=r-s;if(c<=0)return e;let m=n*a*r;return m>c&&(m=c),{x:e.x+o.x*m,y:e.y+o.y*m,z:e.z+o.z*m}}function Re(t){let{velocity:e,wishdir:o,wishspeed:r,accel:n,frametime:a}=t,s=Math.min(r,30),c=R(e,o),m=s-c;if(m<=0)return e;let i=n*r*a;return i>m&&(i=m),{x:e.x+o.x*i,y:e.y+o.y*i,z:e.z+o.z*i}}function Co(t,e){let o=Math.abs(t.forwardmove),r=Math.abs(t.sidemove),n=Math.abs(t.upmove),a=Math.max(o,r,n);if(a===0)return 0;let s=Math.sqrt(t.forwardmove*t.forwardmove+t.sidemove*t.sidemove+t.upmove*t.upmove);return e*a/(127*s)}function Eo(t){let{forward:e,right:o,cmd:r,maxSpeed:n}=t,a={x:e.x*r.forwardmove+o.x*r.sidemove,y:e.y*r.forwardmove+o.y*r.sidemove,z:0},s=L(a);if(s>n){let c=n/s;a=h(a,c),s=n}return{wishdir:s===0?a:z(a),wishspeed:s}}function Po(t){let{forward:e,right:o,cmd:r,maxSpeed:n}=t,a={x:e.x*r.forwardmove+o.x*r.sidemove,y:e.y*r.forwardmove+o.y*r.sidemove,z:0};r.upmove>10?a=_(a,{x:0,y:0,z:r.upmove}):r.upmove<-10?a=_(a,{x:0,y:0,z:r.upmove}):a=_(a,{x:0,y:0,z:10});let s=L(a);if(s>n){let c=n/s;a=h(a,c),s=n}return s*=.5,{wishdir:s===0?a:z(a),wishspeed:s}}var je=5,bo=4,_o=18,ho=.7,Ke=1,Xe=2;function Ye(t,e,o,r=je,n=t){if(e.length===0)return{velocity:t,planes:[],stopped:!1};let a=[],s=t;for(let m of e){if(a.length>=r)return{velocity:O,planes:a,stopped:!0};if(a.find(y=>R(y,m)>.99))continue;a.push(m);let u,l=0;for(;l<a.length;l++){let y=K(s,a[l],o),p=0;for(;p<a.length&&!(p!==l&&R(y,a[p])<0);p++);if(p===a.length){u=y;break}}if(u)s=u;else{if(a.length!==2)return{velocity:O,planes:a,stopped:!0};let y=j(a[0],a[1]),p=R(y,s);s=h(y,p)}if(R(s,n)<=0)return{velocity:O,planes:a,stopped:!0}}let c=s.x===0&&s.y===0&&s.z===0;return{velocity:s,planes:a,stopped:c}}function Fe(t){let{origin:e,velocity:o,frametime:r,overbounce:n,trace:a,maxBumps:s=bo,maxClipPlanes:c=je,mins:m,maxs:i,hasTime:u=!1}=t,l=e,y=o,p=[],f=o,S=r,x=0;for(let P=0;P<s&&!(y.x===0&&y.y===0&&y.z===0);P++){let E=_(l,h(y,S)),T=a(l,E,m,i);if(T.allsolid){let C=u?f:O;return{origin:T.endpos,velocity:C,planes:p,stopped:!0,blocked:x}}if(T.startsolid){let C=u?f:O;return{origin:T.endpos,velocity:C,planes:p,stopped:!0,blocked:x}}if(T.fraction>0&&(l=T.endpos),T.fraction===1)break;if(!T.planeNormal)return{origin:l,velocity:u?f:O,planes:p,stopped:!0,blocked:x};T.planeNormal.z>.7&&(x|=Ke),T.planeNormal.z===0&&(x|=Xe),p.push(T.planeNormal),S-=S*T.fraction;let b=Ye(y,p,n,c,f);if(y=b.velocity,p.splice(0,p.length,...b.planes),f.z>0&&y.z<0&&(y={...y,z:0}),b.stopped)return{origin:l,velocity:u?f:y,planes:p,stopped:!0,blocked:x}}let N=u?f:y;return{origin:l,velocity:N,planes:p,stopped:N.x===0&&N.y===0&&N.z===0,blocked:x}}function Z(t){let{mins:e,maxs:o,stepSize:r=_o,...n}=t,a=t.origin,s=t.velocity,c=Fe({...n,mins:e,maxs:o}),m=_(a,{x:0,y:0,z:r}),i=n.trace(a,m,e,o);if(i.allsolid)return{...c,stepped:!1,stepHeight:0};let u=i.endpos.z-a.z,l=Fe({...n,origin:i.endpos,velocity:s,mins:e,maxs:o}),y=_(l.origin,{x:0,y:0,z:-u}),p=n.trace(l.origin,y,e,o),f=l.origin,S=p.planeNormal;p.allsolid||(f=p.endpos);let x=(C,d)=>(C.x-d.x)**2+(C.y-d.y)**2,N=x(c.origin,a),P=x(f,a);if(N>P||S&&S.z<ho)return{...c,stepped:!1,stepHeight:0};let E={...l.velocity,z:c.velocity.z},T=l.blocked,b=E.x===0&&E.y===0&&E.z===0;return{origin:f,velocity:E,planes:l.planes,blocked:T,stopped:b,stepped:!0,stepHeight:u,stepNormal:S}}var oe=["x","y","z"],ge=[{normal:[0,0,1],mins:[-1,-1,0],maxs:[1,1,0]},{normal:[0,0,-1],mins:[-1,-1,0],maxs:[1,1,0]},{normal:[1,0,0],mins:[0,-1,-1],maxs:[0,1,1]},{normal:[-1,0,0],mins:[0,-1,-1],maxs:[0,1,1]},{normal:[0,1,0],mins:[-1,0,-1],maxs:[1,0,1]},{normal:[0,-1,0],mins:[-1,0,-1],maxs:[1,0,1]}],Ze={x:0,y:0,z:0};function re(t){return{x:t.x,y:t.y,z:t.z}}function vo(t){return{x:t[0],y:t[1],z:t[2]}}function ae(t,e,o){if(o!==0)switch(e){case"x":t.x+=o;break;case"y":t.y+=o;break;case"z":t.z+=o;break}}function qe(t,e,o){switch(e){case"x":t.x=o;break;case"y":t.y=o;break;case"z":t.z=o;break}}function xe(t,e){switch(e){case"x":return t.x;case"y":return t.y;case"z":default:return t.z}}function Qe(t,e,o,r){return t===-1?xe(o,e):t===1?xe(r,e):0}function $e(t,e,o,r){let n=re(t);for(let a=0;a<oe.length;a++){let s=oe[a],c=e.normal[a];c<0?ae(n,s,xe(o,s)):c>0&&ae(n,s,xe(r,s))}return n}function Ao(t,e,o){let r=re(Ze),n=re(Ze);for(let a=0;a<oe.length;a++){let s=oe[a];qe(r,s,Qe(t.mins[a],s,e,o)),qe(n,s,Qe(t.maxs[a],s,e,o))}return{mins:r,maxs:n}}function Oo(t,e,o){if(!e||o===0)return t;let r=re(t);return ae(r,e,o),r}function zo(t,e,o){if(!e||o===0)return t;switch(e){case"x":return{...t,x:t.x+o};case"y":return{...t,y:t.y+o};case"z":default:return{...t,z:t.z+o}}}function Me(t){let{origin:e,mins:o,maxs:r,trace:n}=t;if(!n(e,o,r,e).startsolid)return{result:"good-position",origin:{...e}};let s=[];for(let c=0;c<ge.length;c++){let m=ge[c],{mins:i,maxs:u}=Ao(m,o,r),l=$e(e,m,o,r),y=n(l,i,u,l),p,f=0;if(y.startsolid)for(let C=0;C<oe.length;C++){if(m.normal[C]!==0)continue;let d=oe[C],A=re(l);if(ae(A,d,1),y=n(A,i,u,A),!y.startsolid){l=A,p=d,f=1;break}if(A=re(l),ae(A,d,-1),y=n(A,i,u,A),!y.startsolid){l=A,p=d,f=-1;break}}if(y.startsolid)continue;let S=ge[c^1],x=$e(e,S,o,r);if(x=Oo(x,p,f),y=n(l,i,u,x),y.startsolid)continue;let N=vo(m.normal),P=_(y.endpos??x,h(N,.125)),E=ce(P,x),T=_(e,E);T=zo(T,p,f),!n(T,o,r,T).startsolid&&s.push({origin:T,distance:Q(E)})}return s.length===0?{result:"no-good-position",origin:{...e}}:(s.sort((c,m)=>c.distance-m.distance),{result:"fixed",origin:{...s[0].origin}})}var Ro=100,Le=200,et=150,Te=25,Fo=15,go=1,Mo={x:0,y:0,z:1},Lo=(t,e)=>({fraction:1,endpos:e,allsolid:!1,startsolid:!1});function De(t){let e=0,o=0,r=0;return t&262144&&(e+=1),t&524288&&(o+=1),t&1048576&&(e-=1),t&2097152&&(o-=1),t&4194304&&(r+=1),t&8388608&&(r-=1),e===0&&o===0&&r===0?O:{x:e,y:o,z:r}}function rt(t){let{watertype:e,waterlevel:o,onGround:r,waterSpeed:n}=t;if((e&16515072)===0)return O;let a=De(e);if(a===O)return O;let s=n;return o===1&&r&&(s*=.5),h(a,s)}function nt(t){let{groundContents:e,scale:o=Ro}=t,r=De(e);return r===O?O:h(r,o)}function Se(t){let{wishVelocity:e,onLadder:o,onGround:r,waterlevel:n,watertype:a,groundContents:s,cmd:c,viewPitch:m,maxSpeed:i,ladderMod:u,waterSpeed:l,forward:y,origin:p,mins:f,maxs:S,trace:x=Lo}=t,N=e;o&&(N=Do({wishVelocity:N,cmd:c,waterlevel:n,viewPitch:m,maxSpeed:i,ladderMod:u,onGround:r,forward:y,origin:p,mins:f,maxs:S,trace:x}));let P=rt({watertype:a,waterlevel:n,onGround:r,waterSpeed:l});if(P!==O&&(N=_(N,P)),r){let E=nt({groundContents:s});E!==O&&(N=_(N,E))}return N}function Do(t){let{wishVelocity:e,cmd:o,waterlevel:r,viewPitch:n,maxSpeed:a,ladderMod:s,onGround:c,forward:m,origin:i,mins:u,maxs:l,trace:y}=t,p=o.buttons??0,f={...e};if((p&24)!==0){let S=ze(r)?a:Le;f={...f,z:p&8?S:-S}}else if(o.forwardmove){let S=tt(o.forwardmove,-Le,Le);if(o.forwardmove>0){let x=n<Fo?S:-S;f={...f,z:x}}else c||(f={...f,x:0,y:0}),f={...f,z:S}}else f={...f,z:0};if(!c)if(o.sidemove){let S=tt(o.sidemove,-et,et);r<2&&(S*=s);let x=z({x:m.x,y:m.y,z:0});if(x.x!==0||x.y!==0){let N=_(i,h(x,go)),P=y(i,N,u,l);if(P.fraction!==1&&!P.allsolid&&P.contents!==void 0&&(P.contents&536870912)!==0&&P.planeNormal){let E=j(P.planeNormal,Mo);f={...f,x:0,y:0},f=_(f,h(E,-S))}}}else f={...f,x:ot(f.x),y:ot(f.y)};return f}function tt(t,e,o){return Math.max(e,Math.min(o,t))}function ot(t){return t<-Te?-Te:t>Te?Te:t}var wo=1.5,at=.5,Wo=1.01;function ko(t){let{origin:e,cmd:o,frametime:r,pmFriction:n,pmStopSpeed:a,pmMaxSpeed:s,pmAccelerate:c,pmWaterSpeed:m,doclip:i,forward:u,right:l,mins:y,maxs:p,trace:f,overbounce:S=Wo,stepSize:x,maxBumps:N,maxClipPlanes:P}=t,E=Io({velocity:t.velocity,pmFriction:n,pmStopSpeed:a,frametime:r}),T=Bo({cmd:o,forward:u,right:l,pmMaxSpeed:s,pmWaterSpeed:m});if(T.wishspeed>0&&(E=G({velocity:E,wishdir:T.wishdir,wishspeed:T.accelSpeed,accel:c,frametime:r})),!i){let b=h(E,r);return{origin:_(e,b),velocity:E,planes:[],blocked:0,stopped:E.x===0&&E.y===0&&E.z===0,stepped:!1,stepHeight:0}}if(!f||!y||!p)throw new Error("applyPmoveFlyMove: doclip=true requires trace/mins/maxs");return Z({origin:e,velocity:E,frametime:r,overbounce:S,trace:f,mins:y,maxs:p,stepSize:x,maxBumps:N,maxClipPlanes:P})}function Io(t){let{velocity:e,pmFriction:o,pmStopSpeed:r,frametime:n}=t,a=L(e);if(a<1)return{x:0,y:0,z:0};let s=o*wo,m=(a<r?r:a)*s*n,i=a-m;return i<0&&(i=0),i===a?e:h(e,i/a)}function Bo(t){let{cmd:e,forward:o,right:r,pmMaxSpeed:n,pmWaterSpeed:a}=t,s=z(o),c=z(r),i={x:s.x*e.forwardmove+c.x*e.sidemove,y:s.y*e.forwardmove+c.y*e.sidemove,z:s.z*e.forwardmove+c.z*e.sidemove},u=e.buttons??0;u&8&&(i=_(i,{x:0,y:0,z:a*at})),u&16&&(i=_(i,{x:0,y:0,z:-a*at}));let l=L(i),y=l===0?{x:0,y:0,z:0}:z(i);if(l>n){let f=n/l;i=h(i,f),l=n,y=l===0?{x:0,y:0,z:0}:z(i)}let p=l*2;return{wishdir:y,wishspeed:l,accelSpeed:p}}function se(t){let{origin:e,mins:o,viewheight:r,pointContents:n}=t,a=r-o.z,s=a/2,c={x:e.x,y:e.y,z:e.z+o.z+1},m=n(c);if((m&56)===0)return{waterlevel:0,watertype:0};let i=m,u=1,l={x:c.x,y:c.y,z:e.z+o.z+s};if(m=n(l),(m&56)!==0){u=2;let y={x:c.x,y:c.y,z:e.z+o.z+a};m=n(y),(m&56)!==0&&(u=3)}return{waterlevel:u,watertype:i}}var Uo=270;function Go(t,e){return(t&e)!==0}function Jo(t){let{pmFlags:e,pmType:o,buttons:r,waterlevel:n,onGround:a,velocity:s,jumpHeight:c=Uo}=t;if(e&16)return{pmFlags:e,onGround:a,velocity:s,jumpSound:!1,jumped:!1};let m=Go(r,8),i=e,u=a,l=!1,y=!1,p=s;if(!m)return i=w(i,2),{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};if(Ho(i))return{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};if(o===4)return{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};if(n>=2)return u=!1,{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};if(!u)return{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};i=D(i,2),i=w(i,4),u=!1,l=!0,y=!0;let f=s.z+c,S=f<c?c:f;return p={...s,z:S},{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y}}function Ho(t){return(t&2)!==0}function Ve(t,e,o){return{x:t,y:e,z:o}}function Ne(t,e){let o=Ve(-16,-16,0),r=Ve(16,16,16);if(t===5)return{mins:o,maxs:r,viewheight:8};let n=t===4||(e&1)!==0,a=Ve(o.x,o.y,-24),s=Ve(r.x,r.y,n?4:32);return{mins:a,maxs:s,viewheight:n?-2:22}}var jo=4,Ko=32,Xo=8;function Yo(t){let{pmType:e}=t;if(e===5){let s=Ne(e,t.pmFlags);return{pmFlags:t.pmFlags,ducked:F(t.pmFlags,1),changed:!1,...s}}let o=t.pmFlags,r=!1;e===4?F(o,1)||(o=D(o,1),r=!0):Zo(t)?!F(o,1)&&!qo(t)&&(o=D(o,1),r=!0):F(o,1)&&!Qo(t)&&(o=w(o,1),r=!0);let n=Ne(e,o),a=e===4||F(o,1);return{pmFlags:o,ducked:a,changed:r,...n}}function Zo(t){return(t.buttons&16)===0||t.onLadder||t.n64Physics?!1:!!(t.hasGroundEntity||t.waterlevel<=1&&!$o(t))}function qo(t){return t.trace({start:t.origin,end:t.origin,mins:t.mins,maxs:st(t.maxs,jo),mask:3}).allsolid}function Qo(t){return t.trace({start:t.origin,end:t.origin,mins:t.mins,maxs:st(t.maxs,Ko),mask:3}).allsolid}function $o(t){let e={x:t.origin.x,y:t.origin.y,z:t.origin.z-Xo};return t.trace({start:t.origin,end:e,mins:t.mins,maxs:t.maxs,mask:3}).fraction<1?!1:t.trace({start:t.origin,end:e,mins:t.mins,maxs:t.maxs,mask:56}).fraction<1}function st(t,e){return{x:t.x,y:t.y,z:e}}var er=.25,tr=180,or=100,rr=.7,nr=.9,ar=64,sr=128,cr=1.01,lr=1080;function ir(t){let{pmType:e,n64Physics:o,velocity:r,startVelocity:n,origin:a,mins:s,maxs:c,viewheight:m,trace:i,pointContents:u}=t,l=t.pmFlags,y=t.pmTime,p,f=F(l,4),S,x=0;if(r.z>tr||e===1)l=w(l,4),f=!1;else{let T={x:a.x,y:a.y,z:a.z-er},b=i(a,T,s,c);S=b,x=b.contents??0;let C=b.planeNormal,d=b.fraction<1&&!!C&&C.z<rr;if(d&&C){let A=_(a,C),W=i(a,A,s,c);W.fraction<1&&!W.startsolid&&(d=!1)}if(b.fraction===1||!C||d&&!b.startsolid)l=w(l,4),f=!1;else{f=!0,F(l,8)&&(l&=~lr,y=0);let A=F(l,4);if(!A){!o&&r.z>=or&&C.z>=nr&&!F(l,1)&&(l=D(l,1024),y=ar);let W=K(r,C,cr);p=n.z-W.z}l=D(l,4),!A&&(o||F(l,1))&&(l=D(l,16),y=sr)}}let{waterlevel:P,watertype:E}=se({origin:a,mins:s,viewheight:m,pointContents:u});return{pmFlags:l,pmTime:y,onGround:F(l,4),groundTrace:S,groundContents:x,waterlevel:P,watertype:E,impactDelta:p}}var ct=1,mr=60,we=1.01;function ur(t){let{origin:e,frametime:o,mins:r,maxs:n,trace:a,overbounce:s=we,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u,forward:l,right:y,cmd:p,pmFlags:f,onGround:S,gravity:x,pmType:N,pmAccelerate:P,pmAirAccelerate:E=ct,pmMaxSpeed:T,pmDuckSpeed:b,onLadder:C,waterlevel:d,watertype:A,groundContents:W,viewPitch:B,ladderMod:v,pmWaterSpeed:M}=t,V={...t.velocity},k=pr(l,y,p);k=Se({wishVelocity:k,onLadder:C,onGround:S,waterlevel:d,watertype:A,groundContents:W,cmd:p,viewPitch:B,maxSpeed:F(f,1)?b:T,ladderMod:v,waterSpeed:M,forward:l,origin:e,mins:r,maxs:n,trace:a});let I=F(f,1)?b:T,U=k,g=L(U);if(g!==0&&(U=z(U)),g>I){let J=I/g;k=h(k,J),g=I,g!==0&&(U=z(k))}return C?(V=G({velocity:V,wishdir:U,wishspeed:g,accel:P,frametime:o}),Math.abs(k.z)<Number.EPSILON&&(V=xr(V,x,o)),Ce({origin:e,velocity:V,frametime:o,mins:r,maxs:n,trace:a,overbounce:s,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u})):S?(V={...V,z:0},V=G({velocity:V,wishdir:U,wishspeed:g,accel:P,frametime:o}),x>0?V={...V,z:0}:V={...V,z:V.z-x*o},V.x===0&&V.y===0?{origin:e,velocity:V,planes:[],blocked:0,stopped:!0,stepped:!1,stepHeight:0}:Ce({origin:e,velocity:V,frametime:o,mins:r,maxs:n,trace:a,overbounce:s,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u})):(E>0?V=Re({velocity:V,wishdir:U,wishspeed:g,accel:E,frametime:o}):V=G({velocity:V,wishdir:U,wishspeed:g,accel:ct,frametime:o}),N!==1&&(V={...V,z:V.z-x*o}),Ce({origin:e,velocity:V,frametime:o,mins:r,maxs:n,trace:a,overbounce:s,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u}))}function dr(t){let{origin:e,frametime:o,mins:r,maxs:n,trace:a,overbounce:s=we,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u,forward:l,right:y,cmd:p,pmFlags:f,onGround:S,pmMaxSpeed:x,pmDuckSpeed:N,pmWaterAccelerate:P,pmWaterSpeed:E,onLadder:T,watertype:b,groundContents:C,waterlevel:d,viewPitch:A,ladderMod:W}=t,B={...t.velocity},v=yr(l,y,p);fr(p,S)?v={...v,z:v.z-mr}:lt(p,16)?v=_(v,{x:0,y:0,z:-E*.5}):lt(p,8)&&(v=_(v,{x:0,y:0,z:E*.5})),v=Se({wishVelocity:v,onLadder:T,onGround:S,waterlevel:d,watertype:b,groundContents:C,cmd:p,viewPitch:A,maxSpeed:F(f,1)?N:x,ladderMod:W,waterSpeed:E,forward:l,origin:e,mins:r,maxs:n,trace:a});let M=v,V=L(M);if(V!==0&&(M=z(M)),V>x){let q=x/V;v=h(v,q),V=x,V!==0&&(M=z(v))}if(V*=.5,F(f,1)&&V>N){let q=N/V;v=h(v,q),V=N,V!==0&&(M=z(v))}return B=G({velocity:B,wishdir:M,wishspeed:V,accel:P,frametime:o}),Ce({origin:e,velocity:B,frametime:o,mins:r,maxs:n,trace:a,overbounce:s,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u})}function pr(t,e,o){return{x:t.x*o.forwardmove+e.x*o.sidemove,y:t.y*o.forwardmove+e.y*o.sidemove,z:0}}function yr(t,e,o){return{x:t.x*o.forwardmove+e.x*o.sidemove,y:t.y*o.forwardmove+e.y*o.sidemove,z:t.z*o.forwardmove+e.z*o.sidemove}}function lt(t,e){return!!((t.buttons??0)&e)}function fr(t,e){let o=t.forwardmove===0&&t.sidemove===0,r=!((t.buttons??0)&24);return o&&r&&!e}function xr(t,e,o){let r=t.z,n=e*o;return r>0?(r-=n,r<0&&(r=0)):(r+=n,r>0&&(r=0)),{...t,z:r}}function Ce(t){let{origin:e,velocity:o,frametime:r,mins:n,maxs:a,trace:s,overbounce:c=we,stepSize:m,maxBumps:i,maxClipPlanes:u,hasTime:l}=t;return Z({origin:e,velocity:o,frametime:r,trace:s,mins:n,maxs:a,overbounce:c,stepSize:m,maxBumps:i,maxClipPlanes:u,hasTime:l})}var Tr=1,Sr=40,Ee=50,it=350,Vr=2048,mt=.1,Nr=800,Cr=50,ut=.7,Er=18,Pr=1.01,br=2;function _r(t){let{pmFlags:e,pmTime:o,waterlevel:r,watertype:n,gravity:a,cmd:s,forward:c,origin:m,velocity:i,mins:u,maxs:l,viewheight:y,trace:p,pointContents:f,onGround:S,overbounce:x=Pr,stepSize:N=Er,maxBumps:P,maxClipPlanes:E}=t;if(o>0)return{pmFlags:e,pmTime:o,velocity:i,performedWaterJump:!1};let T=w(e,128),b=o,C=i,d=z({x:c.x,y:c.y,z:0}),A=Q(d)>0;if(r<2&&A){let g=_(m,h(d,Tr)),J=p(m,g,u,l),dt=J.contents??0;J.fraction<1&&(dt&536870912)!==0&&(T=D(T,128))}if(a===0)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};if(((s.buttons??0)&8)===0&&s.forwardmove<=0)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};if(r!==2)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};if((n&8192)!==0)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};if(!A)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};let W=_(m,h(d,Sr)),B=p(m,W,u,l);if(B.fraction===1||!B.planeNormal||B.planeNormal.z>=ut)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};let v={x:d.x*Ee,y:d.y*Ee,z:it},M=m,V=!0,k=hr(a);for(let g=0;g<k;g++){v={x:v.x,y:v.y,z:v.z-a*mt},v.z<0&&(V=!1);let J=Z({origin:M,velocity:v,frametime:mt,trace:p,mins:u,maxs:l,overbounce:x,stepSize:N,maxBumps:P,maxClipPlanes:E,hasTime:V});M=J.origin,v=J.velocity}let q=_(M,{x:0,y:0,z:-br}),I=p(M,q,u,l);return I.fraction===1||!I.planeNormal||I.planeNormal.z<ut||I.endpos.z<m.z?{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1}:S&&Math.abs(m.z-I.endpos.z)<=N?{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1}:se({origin:I.endpos,mins:u,viewheight:y,pointContents:f}).waterlevel>=2?{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1}:(T=D(T,8),b=Vr,C={x:d.x*Ee,y:d.y*Ee,z:it},{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!0})}function hr(t){if(t===0)return 0;let e=Math.floor(10*(Nr/t));return e<=0?0:Math.min(Cr,e)}var We=[0,-1,1];function ke(t){let{origin:e,mins:o,maxs:r,trace:n}=t;return!n(e,e,o,r).allsolid}function vr(t){let{origin:e,velocity:o,mins:r,maxs:n,previousOrigin:a,trace:s}=t;if(ke({origin:e,mins:r,maxs:n,trace:s}))return{origin:{...e},velocity:{...o},resolution:"unchanged"};let c=Me({origin:e,mins:r,maxs:n,trace:(m,i,u,l)=>s(m,l,i,u)});return c.result==="fixed"||c.result==="good-position"?{origin:c.origin,velocity:{...o},resolution:"fixed"}:{origin:{...a},velocity:{...o},resolution:"reverted"}}function Ar(t){let{origin:e,mins:o,maxs:r,trace:n}=t;for(let a of We)for(let s of We)for(let c of We){let m={x:e.x+c,y:e.y+s,z:e.z+a};if(ke({origin:m,mins:o,maxs:r,trace:n}))return{origin:m,snapped:c!==0||s!==0||a!==0}}return{origin:{...e},snapped:!1}}function Or(t,e){return{x:t.x+e.x,y:t.y+e.y,z:t.z+e.z}}function zr(t){return t>89&&t<180?89:t<271&&t>=180?271:t}function Rr(t){let{pmFlags:e,cmdAngles:o,deltaAngles:r}=t,n;(e&32)!==0?n={x:0,y:o.y+r.y,z:0}:(n=Or(o,r),n={...n,x:zr(n.x)});let a=he(n);return{viewangles:n,...a}}return St(Fr);})();
|
|
1
|
+
"use strict";var Quake2Shared=(()=>{var Re=Object.defineProperty;var Ot=Object.getOwnPropertyDescriptor;var Mt=Object.getOwnPropertyNames;var Lt=Object.prototype.hasOwnProperty;var wt=(t,e)=>{for(var n in e)Re(t,n,{get:e[n],enumerable:!0})},Dt=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Mt(e))!Lt.call(t,r)&&r!==n&&Re(t,r,{get:()=>e[r],enumerable:!(o=Ot(e,r))||o.enumerable});return t};var Wt=t=>Dt(Re({},"__esModule",{value:!0}),t);var hr={};wt(hr,{CGAME_EXPORT_KEYS:()=>$n,CGAME_IMPORT_KEYS:()=>qn,CONTENTS_AREAPORTAL:()=>wr,CONTENTS_AUX:()=>zr,CONTENTS_CURRENT_0:()=>ln,CONTENTS_CURRENT_180:()=>mn,CONTENTS_CURRENT_270:()=>dn,CONTENTS_CURRENT_90:()=>un,CONTENTS_CURRENT_DOWN:()=>fn,CONTENTS_CURRENT_UP:()=>pn,CONTENTS_DEADMONSTER:()=>Br,CONTENTS_DETAIL:()=>Gr,CONTENTS_LADDER:()=>nt,CONTENTS_LAVA:()=>Rr,CONTENTS_MIST:()=>Mr,CONTENTS_MONSTER:()=>Ir,CONTENTS_MONSTERCLIP:()=>Wr,CONTENTS_NONE:()=>Ce,CONTENTS_NO_WATERJUMP:()=>cn,CONTENTS_ORIGIN:()=>kr,CONTENTS_PLAYER:()=>Hr,CONTENTS_PLAYERCLIP:()=>Dr,CONTENTS_PROJECTILE:()=>Jr,CONTENTS_PROJECTILECLIP:()=>Lr,CONTENTS_SLIME:()=>Fr,CONTENTS_SOLID:()=>gr,CONTENTS_TRANSLUCENT:()=>Ur,CONTENTS_TRIGGER:()=>an,CONTENTS_WATER:()=>Or,CONTENTS_WINDOW:()=>Ar,CS_MAX_STRING_LENGTH:()=>gs,CS_MAX_STRING_LENGTH_OLD:()=>As,CollisionEntityIndex:()=>We,ConfigStringIndex:()=>oe,CvarFlags:()=>ut,DEFAULT_FORWARD_SPEED:()=>pr,DEFAULT_MOUSE_SENSITIVITY:()=>Sr,DEFAULT_PITCH_SPEED:()=>Tr,DEFAULT_SIDE_SPEED:()=>fr,DEFAULT_UP_SPEED:()=>yr,DEFAULT_YAW_SPEED:()=>xr,DIST_EPSILON:()=>H,GAME_EXPORT_KEYS:()=>Zn,GAME_IMPORT_KEYS:()=>Yn,LAST_VISIBLE_CONTENTS:()=>Kr,MASK_ALL:()=>is,MASK_BLOCK_SIGHT:()=>ps,MASK_CURRENT:()=>yn,MASK_DEADSOLID:()=>ls,MASK_LADDER_NAV_SOLID:()=>ys,MASK_MONSTERSOLID:()=>us,MASK_NAV_SOLID:()=>fs,MASK_OPAQUE:()=>ms,MASK_PLAYERSOLID:()=>cs,MASK_PROJECTILE:()=>Ts,MASK_SHOT:()=>ds,MASK_SOLID:()=>Le,MASK_WALK_NAV_SOLID:()=>xs,MASK_WATER:()=>Ve,MAX_CLIENTS:()=>Dn,MAX_CONFIGSTRINGS:()=>Jn,MAX_EDICTS:()=>vs,MAX_GENERAL:()=>Un,MAX_IMAGES:()=>Bn,MAX_ITEMS:()=>Gn,MAX_LIGHTSTYLES:()=>Wn,MAX_MODELS:()=>kn,MAX_OSPATH:()=>Ns,MAX_QPATH:()=>_s,MAX_SHADOW_LIGHTS:()=>Hn,MAX_SOUNDS:()=>In,MAX_STRING_CHARS:()=>hs,MAX_STRING_TOKENS:()=>Es,MAX_TOKEN_CHARS:()=>Ps,MAX_WHEEL_ITEMS:()=>Ue,MersenneTwister19937:()=>Te,PITCH:()=>ye,PlaneSide:()=>ot,PlayerButton:()=>$,PmFlag:()=>q,PmType:()=>se,ROLL:()=>Oe,RandomGenerator:()=>Se,SLIDEMOVE_BLOCKED_FLOOR:()=>pt,SLIDEMOVE_BLOCKED_WALL:()=>ft,STOP_EPSILON:()=>j,SURF_ALPHATEST:()=>ns,SURF_FLOWING:()=>es,SURF_LIGHT:()=>Xr,SURF_N64_SCROLL_FLIP:()=>as,SURF_N64_SCROLL_X:()=>rs,SURF_N64_SCROLL_Y:()=>ss,SURF_N64_UV:()=>os,SURF_NODRAW:()=>ts,SURF_NONE:()=>jr,SURF_SKY:()=>Zr,SURF_SLICK:()=>Yr,SURF_TRANS33:()=>$r,SURF_TRANS66:()=>Qr,SURF_WARP:()=>qr,WaterLevel:()=>re,YAW:()=>xe,ZERO_VEC3:()=>g,addBlendColor:()=>rn,addContents:()=>Sn,addPmFlag:()=>W,addPointToBounds:()=>Jt,addVec3:()=>_,addViewAngles:()=>Vr,angleMod:()=>le,angleVectors:()=>Me,applyPmoveAccelerate:()=>J,applyPmoveAddCurrents:()=>Ne,applyPmoveAirAccelerate:()=>Je,applyPmoveAirMove:()=>Ko,applyPmoveFlyMove:()=>Vo,applyPmoveFriction:()=>eo,applyPmoveWaterMove:()=>jo,assertContract:()=>Xn,boxContents:()=>zn,boxOnPlaneSide:()=>_n,boxesIntersect:()=>Kt,buildAirGroundWish:()=>no,buildCollisionModel:()=>En,buildWaterWish:()=>oo,categorizePosition:()=>Ho,checkDuckState:()=>zo,checkJump:()=>_o,checkSpecialMovement:()=>ar,clampViewAngles:()=>dr,clipBoxToBrush:()=>Ie,clipVelocityAgainstPlanes:()=>jt,clipVelocityVec3:()=>Y,closestPointToBox:()=>Gt,combineSurfaceFlags:()=>bn,computePlaneSignBits:()=>ke,computePlayerDimensions:()=>ge,concatRotationMatrices:()=>Fe,configStringSize:()=>Kn,createDefaultTrace:()=>he,createEmptyBounds3:()=>Ht,createRandomGenerator:()=>sn,crossVec3:()=>X,currentVectorFromContents:()=>Ze,degToRad:()=>pe,distanceBetweenBoxesSquared:()=>Ut,dotVec3:()=>F,fixStuckObjectGeneric:()=>Xe,getWaterLevel:()=>de,goodPosition:()=>Qe,groundCurrentVelocity:()=>Pt,hasAllContents:()=>xn,hasAnyContents:()=>Tn,hasPmFlag:()=>O,hasSurfaceFlags:()=>Vn,inPHS:()=>Fn,inPVS:()=>Rn,initialSnapPosition:()=>lr,isAtLeastWaistDeep:()=>He,isUnderwater:()=>Qn,lengthSquaredVec3:()=>te,lengthVec3:()=>D,lerpAngle:()=>tn,mouseDeltaToViewDelta:()=>br,multiplyVec3:()=>It,negateVec3:()=>Bt,normalizeVec3:()=>z,perpendicularVec3:()=>tt,planeDistanceToPoint:()=>Z,pmoveCmdScale:()=>to,pointContents:()=>gn,pointContentsMany:()=>An,pointInsideBrush:()=>rt,pointOnPlaneSide:()=>Pn,projectPointOnPlane:()=>et,projectSourceVec3:()=>Yt,projectSourceVec3WithUp:()=>Zt,radToDeg:()=>fe,removeContents:()=>Cn,removePmFlag:()=>G,resolveSlideMove:()=>yt,rotatePointAroundVector:()=>$t,scaleVec3:()=>N,slerpVec3:()=>qt,slideClipVelocityVec3:()=>Xt,slideMove:()=>Ke,snapPosition:()=>cr,stepSlideMove:()=>Q,subtractVec3:()=>ee,testBoxInBrush:()=>st,traceBox:()=>lt,validateContract:()=>mt,vectorToAngles:()=>on,vectorToYaw:()=>nn,waterCurrentVelocity:()=>Et});var g={x:0,y:0,z:0},j=.1,kt=Math.PI/180;function _(t,e){return{x:t.x+e.x,y:t.y+e.y,z:t.z+e.z}}function ee(t,e){return{x:t.x-e.x,y:t.y-e.y,z:t.z-e.z}}function It(t,e){return{x:t.x*e.x,y:t.y*e.y,z:t.z*e.z}}function N(t,e){return{x:t.x*e,y:t.y*e,z:t.z*e}}function Bt(t){return N(t,-1)}function F(t,e){return t.x*e.x+t.y*e.y+t.z*e.z}function X(t,e){return{x:t.y*e.z-t.z*e.y,y:t.z*e.x-t.x*e.z,z:t.x*e.y-t.y*e.x}}function te(t){return F(t,t)}function D(t){return Math.sqrt(te(t))}function z(t){let e=D(t);return e===0?t:N(t,1/e)}function et(t,e){let n=1/F(e,e),o=F(e,t)*n;return ee(t,N(e,n*o))}function tt(t){let e=0,n=Math.abs(t.x);return Math.abs(t.y)<n&&(e=1,n=Math.abs(t.y)),Math.abs(t.z)<n&&(e=2),z(et(e===0?{x:1,y:0,z:0}:e===1?{x:0,y:1,z:0}:{x:0,y:0,z:1},t))}function Gt(t,e,n){return{x:t.x<e.x?e.x:t.x>n.x?n.x:t.x,y:t.y<e.y?e.y:t.y>n.y?n.y:t.y,z:t.z<e.z?e.z:t.z>n.z?n.z:t.z}}function Ut(t,e,n,o){let r=0;if(e.x<n.x){let s=e.x-n.x;r+=s*s}else if(t.x>o.x){let s=t.x-o.x;r+=s*s}if(e.y<n.y){let s=e.y-n.y;r+=s*s}else if(t.y>o.y){let s=t.y-o.y;r+=s*s}if(e.z<n.z){let s=e.z-n.z;r+=s*s}else if(t.z>o.z){let s=t.z-o.z;r+=s*s}return r}function Ht(){return{mins:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY,z:Number.POSITIVE_INFINITY},maxs:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY,z:Number.NEGATIVE_INFINITY}}}function Jt(t,e){return{mins:{x:Math.min(e.mins.x,t.x),y:Math.min(e.mins.y,t.y),z:Math.min(e.mins.z,t.z)},maxs:{x:Math.max(e.maxs.x,t.x),y:Math.max(e.maxs.y,t.y),z:Math.max(e.maxs.z,t.z)}}}function Kt(t,e){return t.mins.x<=e.maxs.x&&t.maxs.x>=e.mins.x&&t.mins.y<=e.maxs.y&&t.maxs.y>=e.mins.y&&t.mins.z<=e.maxs.z&&t.maxs.z>=e.mins.z}function Y(t,e,n){let o=F(t,e)*n,r=t.x-e.x*o,s=t.y-e.y*o,a=t.z-e.z*o;return r>-j&&r<j&&(r=0),s>-j&&s<j&&(s=0),a>-j&&a<j&&(a=0),{x:r,y:s,z:a}}function jt(t,e,n,o){if(e.length===0)return t;let r=t;for(let s=0;s<e.length;s++){r=Y(r,e[s],n);let a=0;for(;a<e.length&&!(a!==s&&F(r,e[a])<0);a++);if(a===e.length)return o&&F(r,o)<=0?g:r}if(e.length===2){let s=X(e[0],e[1]),a=F(s,t),i=N(s,a);return o&&F(i,o)<=0?g:i}return o&&F(r,o)<=0,g}function Xt(t,e,n){return Y(t,e,n)}function Yt(t,e,n,o){return{x:t.x+n.x*e.x+o.x*e.y,y:t.y+n.y*e.x+o.y*e.y,z:t.z+n.z*e.x+o.z*e.y+e.z}}function Zt(t,e,n,o,r){return{x:t.x+n.x*e.x+o.x*e.y+r.x*e.z,y:t.y+n.y*e.x+o.y*e.y+r.y*e.z,z:t.z+n.z*e.x+o.z*e.y+r.z*e.z}}function qt(t,e,n){let o=F(t,e),r,s;if(Math.abs(o)>.9995)r=1-n,s=n;else{let a=Math.acos(o),i=Math.sin(a),u=Math.sin((1-n)*a),l=Math.sin(n*a);r=u/i,s=l/i}return{x:t.x*r+e.x*s,y:t.y*r+e.y*s,z:t.z*r+e.z*s}}function Fe(t,e){let n=r=>[t[r][0]*e[0][0]+t[r][1]*e[1][0]+t[r][2]*e[2][0],t[r][0]*e[0][1]+t[r][1]*e[1][1]+t[r][2]*e[2][1],t[r][0]*e[0][2]+t[r][1]*e[1][2]+t[r][2]*e[2][2]];return[n(0),n(1),n(2)]}function $t(t,e,n){if(D(t)===0)return e;let r=z(t),s=tt(r),a=X(s,r),i=[[s.x,a.x,r.x],[s.y,a.y,r.y],[s.z,a.z,r.z]],u=[[i[0][0],i[1][0],i[2][0]],[i[0][1],i[1][1],i[2][1]],[i[0][2],i[1][2],i[2][2]]],l=n*kt,m=Math.cos(l),c=Math.sin(l),d=[[m,c,0],[-c,m,0],[0,0,1]],p=Fe(Fe(i,d),u);return{x:p[0][0]*e.x+p[0][1]*e.y+p[0][2]*e.z,y:p[1][0]*e.x+p[1][1]*e.y+p[1][2]*e.z,z:p[2][0]*e.x+p[2][1]*e.y+p[2][2]*e.z}}var ye=0,xe=1,Oe=2,Qt=Math.PI/180,en=180/Math.PI;function ce(t,e){switch(e){case ye:return t.x;case xe:return t.y;case Oe:default:return t.z}}function pe(t){return t*Qt}function fe(t){return t*en}function tn(t,e,n){let o=e;return o-t>180?o-=360:o-t<-180&&(o+=360),t+n*(o-t)}function le(t){let e=t%360;return e<0?360+e:e}function Me(t){let e=pe(ce(t,xe)),n=pe(ce(t,ye)),o=pe(ce(t,Oe)),r=Math.sin(e),s=Math.cos(e),a=Math.sin(n),i=Math.cos(n),u=Math.sin(o),l=Math.cos(o),m={x:i*s,y:i*r,z:-a},c={x:-u*a*s-l*-r,y:-u*a*r-l*s,z:-u*i},d={x:l*a*s-u*-r,y:l*a*r-u*s,z:l*i};return{forward:m,right:c,up:d}}function nn(t){let e=ce(t,ye),n=ce(t,xe);if(e===0)return n===0?0:n>0?90:270;let o=fe(Math.atan2(n,e));return o<0?o+360:o}function on(t){let e=t.x,n=t.y,o=t.z;if(n===0&&e===0)return{x:o>0?-90:-270,y:0,z:0};let r;e?r=fe(Math.atan2(n,e)):n>0?r=90:r=270,r<0&&(r+=360);let s=Math.sqrt(e*e+n*n),a=fe(Math.atan2(o,s));return a<0&&(a+=360),{x:-a,y:r,z:0}}function rn(t,e,n,o,r){if(o<=0)return r;let s=r[0],a=r[1],i=r[2],u=r[3],l=u+(1-u)*o;if(l<=0)return[0,0,0,0];let m=u/l,c=s*m+t*(1-m),d=a*m+e*(1-m),p=i*m+n*(1-m);return[c,d,p,l]}var Te=class{constructor(e=5489){this.state=new Uint32Array(624);this.index=624;this.seed(e)}seed(e){this.state[0]=e>>>0;for(let n=1;n<624;n++){let o=this.state[n-1]^this.state[n-1]>>>30,r=Math.imul(o>>>0,1812433253)+n;this.state[n]=r>>>0}this.index=624}nextUint32(){this.index>=624&&this.twist();let e=this.state[this.index++];return e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0}twist(){for(let e=0;e<624;e++){let n=this.state[e]&2147483648|this.state[(e+1)%624]&2147483647,o=this.state[(e+397)%624]^n>>>1;(n&1)!==0&&(o^=2567483615),this.state[e]=o>>>0}this.index=0}getState(){return{index:this.index,state:Array.from(this.state)}}setState(e){if(e.state.length!==624)throw new Error(`Expected 624 MT state values, received ${e.state.length}`);this.index=e.index,this.state=Uint32Array.from(e.state,n=>n>>>0)}},Se=class{constructor(e={}){this.mt=new Te(e.seed)}frandom(){return this.mt.nextUint32()/4294967296}frandomRange(e,n){return e+(n-e)*this.frandom()}frandomMax(e){return this.frandomRange(0,e)}crandom(){return this.frandomRange(-1,1)}crandomOpen(){let e=Number.EPSILON;return this.frandomRange(-1+e,1)}irandomUint32(){return this.mt.nextUint32()}irandomRange(e,n){if(n-e<=1)return e;let o=n-e,r=4294967296-4294967296%o,s;do s=this.mt.nextUint32();while(s>=r);return e+s%o}irandom(e){return e<=0?0:this.irandomRange(0,e)}randomTimeRange(e,n){return n<=e?e:this.irandomRange(e,n)}randomTime(e){return this.irandom(e)}randomIndex(e){return this.irandom(e.length)}getState(){return{mt:this.mt.getState()}}setState(e){this.mt.setState(e.mt)}};function sn(t){return new Se(t)}var Ce=0,gr=1,Ar=2,zr=4,Rr=8,Fr=16,Or=32,Mr=64,an=1073741824,cn=8192,Lr=16384,wr=32768,Dr=65536,Wr=131072,ln=262144,un=524288,mn=1048576,dn=2097152,pn=4194304,fn=8388608,kr=16777216,Ir=33554432,Br=67108864,Gr=134217728,Ur=268435456,nt=536870912,Hr=1073741824,Jr=-2147483648,Kr=64,jr=0,Xr=1,Yr=2,Zr=4,qr=8,$r=16,Qr=32,es=64,ts=128,ns=33554432,os=268435456,rs=536870912,ss=1073741824,as=-2147483648,is=4294967295,Le=3,cs=1107361795,ls=65539,us=1107427331,Ve=56,ms=25,ds=1174405123,yn=16515072,ps=1107296281,fs=65539,ys=3,xs=196611,Ts=1174421507;function xn(t,e){return(t&e)===e}function Tn(t,e){return(t&e)!==0}function Sn(t,e){return t|e}function Cn(t,e){return t&~e}function Vn(t,e){return(t&e)===e}function bn(...t){let e=0;for(let n of t)e|=n;return e}var ot=(o=>(o[o.FRONT=1]="FRONT",o[o.BACK=2]="BACK",o[o.CROSS=3]="CROSS",o))(ot||{}),H=.03125,hn=Number.MAX_SAFE_INTEGER-1,be=1;function En(t){let e=t.planes.map(a=>({...a,signbits:ke(a.normal)})),n=t.nodes.map(a=>({plane:e[a.planenum],children:a.children})),o=t.brushes.map(a=>{let i=t.brushSides.slice(a.firstSide,a.firstSide+a.numSides).map(u=>({plane:e[u.planenum],surfaceFlags:u.surfaceFlags}));return{contents:a.contents,sides:i,checkcount:0}}),r=t.leaves.map(a=>({contents:a.contents,cluster:a.cluster,area:a.area,firstLeafBrush:a.firstLeafBrush,numLeafBrushes:a.numLeafBrushes})),s=t.bmodels.map(a=>({mins:a.mins,maxs:a.maxs,origin:a.origin,headnode:a.headnode}));return{planes:e,nodes:n,leaves:r,brushes:o,leafBrushes:t.leafBrushes,bmodels:s,visibility:t.visibility}}function ke(t){let e=0;return t.x<0&&(e|=1),t.y<0&&(e|=2),t.z<0&&(e|=4),e}function Z(t,e){return t.normal.x*e.x+t.normal.y*e.y+t.normal.z*e.z-t.dist}function Pn(t,e,n=0){let o=Z(t,e);return o>n?1:o<-n?2:3}function _n(t,e,n,o=0){let r,s;switch(n.signbits){case 0:r=n.normal.x*e.x+n.normal.y*e.y+n.normal.z*e.z,s=n.normal.x*t.x+n.normal.y*t.y+n.normal.z*t.z;break;case 1:r=n.normal.x*t.x+n.normal.y*e.y+n.normal.z*e.z,s=n.normal.x*e.x+n.normal.y*t.y+n.normal.z*t.z;break;case 2:r=n.normal.x*e.x+n.normal.y*t.y+n.normal.z*e.z,s=n.normal.x*t.x+n.normal.y*e.y+n.normal.z*t.z;break;case 3:r=n.normal.x*t.x+n.normal.y*t.y+n.normal.z*e.z,s=n.normal.x*e.x+n.normal.y*e.y+n.normal.z*t.z;break;case 4:r=n.normal.x*e.x+n.normal.y*e.y+n.normal.z*t.z,s=n.normal.x*t.x+n.normal.y*t.y+n.normal.z*e.z;break;case 5:r=n.normal.x*t.x+n.normal.y*e.y+n.normal.z*t.z,s=n.normal.x*e.x+n.normal.y*t.y+n.normal.z*e.z;break;case 6:r=n.normal.x*e.x+n.normal.y*t.y+n.normal.z*t.z,s=n.normal.x*t.x+n.normal.y*e.y+n.normal.z*e.z;break;default:r=n.normal.x*t.x+n.normal.y*t.y+n.normal.z*t.z,s=n.normal.x*e.x+n.normal.y*e.y+n.normal.z*e.z;break}let a=0;return r-n.dist>=-o&&(a=1),s-n.dist<=o&&(a|=2),a}function rt(t,e,n=H){for(let o of e.sides)if(Z(o.plane,t)>n)return!1;return!0}function st(t,e,n,o){for(let r of o.sides){let s=r.plane.normal.x*(r.plane.normal.x<0?n.x:e.x)+r.plane.normal.y*(r.plane.normal.y<0?n.y:e.y)+r.plane.normal.z*(r.plane.normal.z<0?n.z:e.z),a=r.plane.dist-s;if(t.x*r.plane.normal.x+t.y*r.plane.normal.y+t.z*r.plane.normal.z-a>0)return{startsolid:!1,allsolid:!1,contents:0}}return{startsolid:!0,allsolid:!0,contents:o.contents}}function Ie({start:t,end:e,mins:n,maxs:o,brush:r,trace:s}){if(r.sides.length===0)return;let a=n.x===0&&n.y===0&&n.z===0&&o.x===0&&o.y===0&&o.z===0,i=-1,u=1,l=null,m=null,c=!1,d=!1;for(let p of r.sides){let{plane:f}=p,C=f.dist;if(!a){let E=f.normal.x<0?o.x:n.x,b=f.normal.y<0?o.y:n.y,T=f.normal.z<0?o.z:n.z;C-=f.normal.x*E+f.normal.y*b+f.normal.z*T}let x=t.x*f.normal.x+t.y*f.normal.y+t.z*f.normal.z-C,S=e.x*f.normal.x+e.y*f.normal.y+e.z*f.normal.z-C;if(S>0&&(c=!0),x>0&&(d=!0),x>0&&S>=x)return;if(!(x<=0&&S<=0))if(x>S){let E=(x-H)/(x-S);E>i&&(i=E,l=f,m=p)}else{let E=(x+H)/(x-S);E<u&&(u=E)}}if(!d){s.startsolid=!0,c||(s.allsolid=!0);return}i<u&&i>-1&&i<s.fraction&&(s.fraction=i<0?0:i,s.plane=l,s.contents=r.contents,s.surfaceFlags=m?.surfaceFlags??0)}function he(){return{fraction:1,plane:null,contents:0,surfaceFlags:0,startsolid:!1,allsolid:!1}}function Be(t,e,n){let o=n;for(;o>=0;){let r=e.nodes[o];o=Z(r.plane,t)>=0?r.children[0]:r.children[1]}return-1-o}function at(t,e,n){let o=t.leaves[e],r=o.contents,s=Ge(),a=o.firstLeafBrush,i=a+o.numLeafBrushes;for(let u=a;u<i;u+=1){let l=t.leafBrushes[u],m=t.brushes[l];m.checkcount!==s&&(m.checkcount=s,m.sides.length!==0&&rt(n,m)&&(r|=m.contents))}return r}function Ge(){let t=be;return be+=1,be>=hn&&(be=1),t}function Nn(t,e){return t.x===0&&t.y===0&&t.z===0&&e.x===0&&e.y===0&&e.z===0}function it(t,e,n){return Nn(e,n)?0:t.normal.x*(t.normal.x<0?n.x:e.x)+t.normal.y*(t.normal.y<0?n.y:e.y)+t.normal.z*(t.normal.z<0?n.z:e.z)}function vn(t,e,n){return Math.abs(it(t,e,n))}function we(t,e,n){return _(t,N(ee(e,t),n))}function De(t,e,n){let o=t.allsolid?0:t.fraction,r=we(e,n,o);return{fraction:o,endpos:r,plane:t.plane,planeNormal:t.startsolid?void 0:t.plane?.normal,contents:t.contents,surfaceFlags:t.surfaceFlags,startsolid:t.startsolid,allsolid:t.allsolid}}function Ee(t,e,n){let o=Be(t,e,n);return e.leaves[o]?.cluster??-1}function ct(t,e,n,o){if(!t||t.numClusters===0)return!0;if(e<0||n<0||e>=t.clusters.length||n>=t.numClusters)return!1;let r=t.clusters[e],a=(o?r.phs:r.pvs)[n>>3];return a===void 0?!1:(a&1<<(n&7))!==0}function ue(t){let{model:e,nodeIndex:n,startFraction:o,endFraction:r,start:s,end:a,traceStart:i,traceEnd:u,mins:l,maxs:m,contentMask:c,trace:d,brushCheckCount:p}=t;if(d.fraction<=o)return;if(n<0){let M=-1-n,h=e.leaves[M],w=h.firstLeafBrush,U=w+h.numLeafBrushes;for(let L=w;L<U;L+=1){let B=e.leafBrushes[L],R=e.brushes[B];if((R.contents&c)!==0&&R.sides.length&&R.checkcount!==p&&(R.checkcount=p,Ie({start:i,end:u,mins:l,maxs:m,brush:R,trace:d}),d.allsolid))return}return}let f=e.nodes[n],C=f.plane,x=it(C,l,m),S=Z(C,s)+x,E=Z(C,a)+x;if(S>=0&&E>=0){ue({model:e,nodeIndex:f.children[0],startFraction:o,endFraction:r,start:s,end:a,traceStart:i,traceEnd:u,mins:l,maxs:m,contentMask:c,trace:d,brushCheckCount:p});return}if(S<0&&E<0){ue({model:e,nodeIndex:f.children[1],startFraction:o,endFraction:r,start:s,end:a,traceStart:i,traceEnd:u,mins:l,maxs:m,contentMask:c,trace:d,brushCheckCount:p});return}let b=0,T=1/(S-E),P=(S-H)*T,V=(S+H)*T;S<E&&(b=1,P=(S+H)*T,V=(S-H)*T),P<0?P=0:P>1&&(P=1),V<0?V=0:V>1&&(V=1);let y=o+(r-o)*P,A=we(s,a,P);if(ue({model:e,nodeIndex:f.children[b],startFraction:o,endFraction:y,start:s,end:A,traceStart:i,traceEnd:u,mins:l,maxs:m,contentMask:c,trace:d,brushCheckCount:p}),d.fraction<=y)return;let I=o+(r-o)*V,v=we(s,a,V);ue({model:e,nodeIndex:f.children[1-b],startFraction:I,endFraction:r,start:v,end:a,traceStart:i,traceEnd:u,mins:l,maxs:m,contentMask:c,trace:d,brushCheckCount:p})}function lt(t){let{model:e,start:n,end:o}=t,r=t.mins??g,s=t.maxs??g,a=t.contentMask??4294967295,i=t.headnode??0,u=he(),l=Ge();return ue({model:e,nodeIndex:i,startFraction:0,endFraction:1,start:n,end:o,traceStart:n,traceEnd:o,mins:r,maxs:s,contentMask:a,trace:u,brushCheckCount:l}),De(u,n,o)}function gn(t,e,n=0){let o=Be(t,e,n);return at(e,o,t)}function An(t,e,n=0){let o=new Map;return t.map(r=>{let s=Be(r,e,n),a=e.leaves[s];if(a.numLeafBrushes===0){let i=o.get(s);return i!==void 0?i:(o.set(s,a.contents),a.contents)}return at(e,s,r)})}function zn(t,e,n,o,r=0){let s=Ge(),a=0;function i(u){if(u<0){let p=-1-u,f=o.leaves[p];a|=f.contents;let C=f.firstLeafBrush,x=C+f.numLeafBrushes;for(let S=C;S<x;S+=1){let E=o.leafBrushes[S],b=o.brushes[E];if(b.checkcount===s||(b.checkcount=s,b.sides.length===0))continue;let T=st(t,e,n,b);T.startsolid&&(a|=T.contents)}return}let l=o.nodes[u],m=l.plane,c=vn(m,e,n),d=Z(m,t);if(c===0){i(d>=0?l.children[0]:l.children[1]);return}if(d>c){i(l.children[0]);return}if(d<-c){i(l.children[1]);return}i(l.children[0]),i(l.children[1])}return i(r),a}function Rn(t,e,n,o=0){let{visibility:r}=n;if(!r)return!0;let s=Ee(t,n,o),a=Ee(e,n,o);return ct(r,s,a,!1)}function Fn(t,e,n,o=0){let{visibility:r}=n;if(!r)return!0;let s=Ee(t,n,o),a=Ee(e,n,o);return ct(r,s,a,!0)}function ne(t,e,n){return{normal:t,dist:e,type:n,signbits:ke(t)}}function On(t){let e=t.surfaceFlags??0,n=t.origin.x+t.maxs.x,o=t.origin.x+t.mins.x,r=t.origin.y+t.maxs.y,s=t.origin.y+t.mins.y,a=t.origin.z+t.maxs.z,i=t.origin.z+t.mins.z,l=[ne({x:1,y:0,z:0},n,0),ne({x:-1,y:0,z:0},-o,0),ne({x:0,y:1,z:0},r,1),ne({x:0,y:-1,z:0},-s,1),ne({x:0,y:0,z:1},a,2),ne({x:0,y:0,z:-1},-i,2)].map(m=>({plane:m,surfaceFlags:e}));return{contents:t.contents,sides:l,checkcount:0}}function Mn(t){let e=On(t);return{...t,brush:e,bounds:{mins:{x:t.origin.x+t.mins.x,y:t.origin.y+t.mins.y,z:t.origin.z+t.mins.z},maxs:{x:t.origin.x+t.maxs.x,y:t.origin.y+t.maxs.y,z:t.origin.z+t.maxs.z}}}}function Ln(t,e){return!(t.mins.x>e.maxs.x||t.maxs.x<e.mins.x||t.mins.y>e.maxs.y||t.maxs.y<e.mins.y||t.mins.z>e.maxs.z||t.maxs.z<e.mins.z)}function wn(t,e){return e.allsolid&&!t.allsolid||e.startsolid&&!t.startsolid?!0:e.fraction<t.fraction}var We=class{constructor(){this.entities=new Map}link(e){this.entities.set(e.id,Mn(e))}unlink(e){this.entities.delete(e)}trace(e){let{passId:n}=e,o=e.mins??g,r=e.maxs??g,s=e.contentMask??4294967295,a,i=null;e.model?a=lt(e):a=De(he(),e.start,e.end);for(let u of this.entities.values()){if(u.id===n||(u.contents&s)===0)continue;let l=he();Ie({start:e.start,end:e.end,mins:o,maxs:r,brush:u.brush,trace:l}),l.contents===0&&(l.contents=u.contents);let m=De(l,e.start,e.end);wn(a,m)&&(a=m,i=u.id)}return{...a,entityId:i}}gatherTriggerTouches(e,n,o,r=1073741824){let s=[],a={mins:_(e,n),maxs:_(e,o)};for(let i of this.entities.values())(i.contents&r)!==0&&Ln(a,i.bounds)&&s.push(i.id);return s}};var ut=(a=>(a[a.None=0]="None",a[a.Archive=1]="Archive",a[a.UserInfo=2]="UserInfo",a[a.ServerInfo=4]="ServerInfo",a[a.Latch=8]="Latch",a[a.Cheat=16]="Cheat",a))(ut||{});var hs=1024,Es=80,Ps=512,_s=64,Ns=128,Dn=256,vs=8192,Wn=256,kn=8192,In=2048,Bn=512,Gn=256,Un=512,Hn=256,Ue=32,gs=96,As=64,oe=(y=>(y[y.Name=0]="Name",y[y.CdTrack=1]="CdTrack",y[y.Sky=2]="Sky",y[y.SkyAxis=3]="SkyAxis",y[y.SkyRotate=4]="SkyRotate",y[y.StatusBar=5]="StatusBar",y[y.AirAccel=59]="AirAccel",y[y.MaxClients=60]="MaxClients",y[y.MapChecksum=61]="MapChecksum",y[y.Models=62]="Models",y[y.Sounds=62+kn]="Sounds",y[y.Images=y.Sounds+In]="Images",y[y.Lights=y.Images+Bn]="Lights",y[y.ShadowLights=y.Lights+Wn]="ShadowLights",y[y.Items=y.ShadowLights+Hn]="Items",y[y.PlayerSkins=y.Items+Gn]="PlayerSkins",y[y.General=y.PlayerSkins+Dn]="General",y[y.WheelWeapons=y.General+Un]="WheelWeapons",y[y.WheelAmmo=y.WheelWeapons+Ue]="WheelAmmo",y[y.WheelPowerups=y.WheelAmmo+Ue]="WheelPowerups",y[y.CdLoopCount=y.WheelPowerups+Ue]="CdLoopCount",y[y.GameStyle=y.CdLoopCount+1]="GameStyle",y[y.MaxConfigStrings=y.GameStyle+1]="MaxConfigStrings",y))(oe||{}),Jn=oe.MaxConfigStrings;function Kn(t){return t>=5&&t<59?96*(59-t):t>=oe.General&&t<oe.WheelWeapons?96*(oe.MaxConfigStrings-t):96}function jn(t){return t??{}}function mt(t,e,n={}){let o=jn(t),r=[],s=[];for(let i of e){if(!(i in o)){r.push(i);continue}typeof o[i]!="function"&&s.push(i)}let a=n.allowExtra===!1?Object.keys(o).filter(i=>!e.includes(i)):[];return{missing:r,nonFunctions:s,extras:a}}function Xn(t,e,n={}){let{missing:o,nonFunctions:r,extras:s}=mt(t,e,n);if(o.length===0&&r.length===0&&s.length===0)return;let a=[];o.length>0&&a.push(`missing: ${o.join(", ")}`),r.length>0&&a.push(`non-functions: ${r.join(", ")}`),s.length>0&&a.push(`extras: ${s.join(", ")}`);let i=n.name??"contract";throw new Error(`${i} validation failed (${a.join("; ")})`)}var Yn=["Broadcast_Print","Com_Print","Client_Print","Center_Print","sound","positioned_sound","local_sound","configstring","get_configstring","Com_Error","modelindex","soundindex","imageindex","setmodel","trace","clip","pointcontents","inPVS","inPHS","SetAreaPortalState","AreasConnected","linkentity","unlinkentity","BoxEdicts","multicast","unicast"],Zn=["PreInit","Init","Shutdown","SpawnEntities","WriteGameJson","ReadGameJson","WriteLevelJson","ReadLevelJson","CanSave","ClientConnect","ClientThink","RunFrame","Pmove"],qn=["Com_Print","get_configstring","Com_Error","TagMalloc","TagFree","AddCommandString","CL_FrameValid","CL_FrameTime","CL_ClientTime","CL_ServerFrame","Draw_RegisterPic","Draw_GetPicSize","SCR_DrawChar","SCR_DrawPic","SCR_DrawColorPic"],$n=["Init","Shutdown","DrawHUD","TouchPics","LayoutFlags","GetActiveWeaponWheelWeapon","GetOwnedWeaponWheelWeapons","GetWeaponWheelAmmoCount","GetPowerupWheelCount","GetHitMarkerDamage","Pmove","ParseConfigString","ParseCenterPrint","ClearNotify","ClearCenterprint","NotifyMessage","GetMonsterFlashOffset"];var re=(r=>(r[r.None=0]="None",r[r.Feet=1]="Feet",r[r.Waist=2]="Waist",r[r.Under=3]="Under",r))(re||{});function He(t){return t>=2}function Qn(t){return t===3}var q=(c=>(c[c.Ducked=1]="Ducked",c[c.JumpHeld=2]="JumpHeld",c[c.OnGround=4]="OnGround",c[c.TimeWaterJump=8]="TimeWaterJump",c[c.TimeLand=16]="TimeLand",c[c.TimeTeleport=32]="TimeTeleport",c[c.NoPositionalPrediction=64]="NoPositionalPrediction",c[c.OnLadder=128]="OnLadder",c[c.NoAngularPrediction=256]="NoAngularPrediction",c[c.IgnorePlayerCollision=512]="IgnorePlayerCollision",c[c.TimeTrick=1024]="TimeTrick",c))(q||{});function O(t,e){return(t&e)!==0}function W(t,e){return t|e}function G(t,e){return t&~e}var se=(i=>(i[i.Normal=0]="Normal",i[i.Grapple=1]="Grapple",i[i.NoClip=2]="NoClip",i[i.Spectator=3]="Spectator",i[i.Dead=4]="Dead",i[i.Gib=5]="Gib",i[i.Freeze=6]="Freeze",i))(se||{}),$=(i=>(i[i.None=0]="None",i[i.Attack=1]="Attack",i[i.Use=2]="Use",i[i.Holster=4]="Holster",i[i.Jump=8]="Jump",i[i.Crouch=16]="Crouch",i[i.Any=128]="Any",i))($||{});function eo(t){let{velocity:e,frametime:n,onGround:o,groundIsSlick:r,onLadder:s,waterlevel:a,pmFriction:i,pmStopSpeed:u,pmWaterFriction:l}=t,m=D(e);if(m<1)return{x:0,y:0,z:e.z};let c=0;if(o&&!r||s){let f=m<u?u:m;c+=f*i*n}a>0&&!s&&(c+=m*l*a*n);let d=m-c;if(d<0&&(d=0),d===m)return e;let p=d/m;return N(e,p)}function J(t){let{velocity:e,wishdir:n,wishspeed:o,accel:r,frametime:s}=t,a=F(e,n),i=o-a;if(i<=0)return e;let u=r*s*o;return u>i&&(u=i),{x:e.x+n.x*u,y:e.y+n.y*u,z:e.z+n.z*u}}function Je(t){let{velocity:e,wishdir:n,wishspeed:o,accel:r,frametime:s}=t,a=Math.min(o,30),i=F(e,n),u=a-i;if(u<=0)return e;let l=r*o*s;return l>u&&(l=u),{x:e.x+n.x*l,y:e.y+n.y*l,z:e.z+n.z*l}}function to(t,e){let n=Math.abs(t.forwardmove),o=Math.abs(t.sidemove),r=Math.abs(t.upmove),s=Math.max(n,o,r);if(s===0)return 0;let a=Math.sqrt(t.forwardmove*t.forwardmove+t.sidemove*t.sidemove+t.upmove*t.upmove);return e*s/(127*a)}function no(t){let{forward:e,right:n,cmd:o,maxSpeed:r}=t,s={x:e.x*o.forwardmove+n.x*o.sidemove,y:e.y*o.forwardmove+n.y*o.sidemove,z:0},a=D(s);if(a>r){let i=r/a;s=N(s,i),a=r}return{wishdir:a===0?s:z(s),wishspeed:a}}function oo(t){let{forward:e,right:n,cmd:o,maxSpeed:r}=t,s={x:e.x*o.forwardmove+n.x*o.sidemove,y:e.y*o.forwardmove+n.y*o.sidemove,z:0};o.upmove>10?s=_(s,{x:0,y:0,z:o.upmove}):o.upmove<-10?s=_(s,{x:0,y:0,z:o.upmove}):s=_(s,{x:0,y:0,z:10});let a=D(s);if(a>r){let i=r/a;s=N(s,i),a=r}return a*=.5,{wishdir:a===0?s:z(s),wishspeed:a}}var dt=5,ro=4,so=18,ao=.7,pt=1,ft=2;function yt(t,e,n,o=dt,r=t){if(e.length===0)return{velocity:t,planes:[],stopped:!1};let s=[],a=t;for(let u of e){if(s.length>=o)return{velocity:g,planes:s,stopped:!0};if(s.find(d=>F(d,u)>.99))continue;s.push(u);let m,c=0;for(;c<s.length;c++){let d=Y(a,s[c],n),p=0;for(;p<s.length&&!(p!==c&&F(d,s[p])<0);p++);if(p===s.length){m=d;break}}if(m)a=m;else{if(s.length!==2)return{velocity:g,planes:s,stopped:!0};let d=X(s[0],s[1]),p=F(d,a);a=N(d,p)}if(F(a,r)<=0)return{velocity:g,planes:s,stopped:!0}}let i=a.x===0&&a.y===0&&a.z===0;return{velocity:a,planes:s,stopped:i}}function Ke(t){let{origin:e,velocity:n,frametime:o,overbounce:r,trace:s,maxBumps:a=ro,maxClipPlanes:i=dt,mins:u,maxs:l,hasTime:m=!1}=t,c=e,d=n,p=[],f=n,C=o,x=0;for(let E=0;E<a&&!(d.x===0&&d.y===0&&d.z===0);E++){let b=_(c,N(d,C)),T=s(c,b,u,l);if(T.allsolid){let V=m?f:g;return{origin:T.endpos,velocity:V,planes:p,stopped:!0,blocked:x}}if(T.startsolid){let V=m?f:g;return{origin:T.endpos,velocity:V,planes:p,stopped:!0,blocked:x}}if(T.fraction>0&&(c=T.endpos),T.fraction===1)break;if(!T.planeNormal)return{origin:c,velocity:m?f:g,planes:p,stopped:!0,blocked:x};T.planeNormal.z>.7&&(x|=pt),T.planeNormal.z===0&&(x|=ft),p.push(T.planeNormal),C-=C*T.fraction;let P=yt(d,p,r,i,f);if(d=P.velocity,p.splice(0,p.length,...P.planes),f.z>0&&d.z<0&&(d={...d,z:0}),P.stopped)return{origin:c,velocity:m?f:d,planes:p,stopped:!0,blocked:x}}let S=m?f:d;return{origin:c,velocity:S,planes:p,stopped:S.x===0&&S.y===0&&S.z===0,blocked:x}}function Q(t){let{mins:e,maxs:n,stepSize:o=so,...r}=t,s=t.origin,a=t.velocity,i=Ke({...r,mins:e,maxs:n}),u=_(s,{x:0,y:0,z:o}),l=r.trace(s,u,e,n);if(l.allsolid)return{...i,stepped:!1,stepHeight:0};let m=l.endpos.z-s.z,c=Ke({...r,origin:l.endpos,velocity:a,mins:e,maxs:n}),d=_(c.origin,{x:0,y:0,z:-m}),p=r.trace(c.origin,d,e,n),f=c.origin,C=p.planeNormal;p.allsolid||(f=p.endpos);let x=(V,y)=>(V.x-y.x)**2+(V.y-y.y)**2,S=x(i.origin,s),E=x(f,s);if(S>E||C&&C.z<ao)return{...i,stepped:!1,stepHeight:0};let b={...c.velocity,z:i.velocity.z},T=c.blocked,P=b.x===0&&b.y===0&&b.z===0;return{origin:f,velocity:b,planes:c.planes,blocked:T,stopped:P,stepped:!0,stepHeight:m,stepNormal:C}}var ae=["x","y","z"],je=[{normal:[0,0,1],mins:[-1,-1,0],maxs:[1,1,0]},{normal:[0,0,-1],mins:[-1,-1,0],maxs:[1,1,0]},{normal:[1,0,0],mins:[0,-1,-1],maxs:[0,1,1]},{normal:[-1,0,0],mins:[0,-1,-1],maxs:[0,1,1]},{normal:[0,1,0],mins:[-1,0,-1],maxs:[1,0,1]},{normal:[0,-1,0],mins:[-1,0,-1],maxs:[1,0,1]}],xt={x:0,y:0,z:0};function ie(t){return{x:t.x,y:t.y,z:t.z}}function io(t){return{x:t[0],y:t[1],z:t[2]}}function me(t,e,n){if(n!==0)switch(e){case"x":t.x+=n;break;case"y":t.y+=n;break;case"z":t.z+=n;break}}function Tt(t,e,n){switch(e){case"x":t.x=n;break;case"y":t.y=n;break;case"z":t.z=n;break}}function Pe(t,e){switch(e){case"x":return t.x;case"y":return t.y;case"z":default:return t.z}}function St(t,e,n,o){return t===-1?Pe(n,e):t===1?Pe(o,e):0}function Ct(t,e,n,o){let r=ie(t);for(let s=0;s<ae.length;s++){let a=ae[s],i=e.normal[s];i<0?me(r,a,Pe(n,a)):i>0&&me(r,a,Pe(o,a))}return r}function co(t,e,n){let o=ie(xt),r=ie(xt);for(let s=0;s<ae.length;s++){let a=ae[s];Tt(o,a,St(t.mins[s],a,e,n)),Tt(r,a,St(t.maxs[s],a,e,n))}return{mins:o,maxs:r}}function lo(t,e,n){if(!e||n===0)return t;let o=ie(t);return me(o,e,n),o}function uo(t,e,n){if(!e||n===0)return t;switch(e){case"x":return{...t,x:t.x+n};case"y":return{...t,y:t.y+n};case"z":default:return{...t,z:t.z+n}}}function Xe(t){let{origin:e,mins:n,maxs:o,trace:r}=t;if(!r(e,n,o,e).startsolid)return{result:"good-position",origin:{...e}};let a=[];for(let i=0;i<je.length;i++){let u=je[i],{mins:l,maxs:m}=co(u,n,o),c=Ct(e,u,n,o),d=r(c,l,m,c),p,f=0;if(d.startsolid)for(let V=0;V<ae.length;V++){if(u.normal[V]!==0)continue;let y=ae[V],A=ie(c);if(me(A,y,1),d=r(A,l,m,A),!d.startsolid){c=A,p=y,f=1;break}if(A=ie(c),me(A,y,-1),d=r(A,l,m,A),!d.startsolid){c=A,p=y,f=-1;break}}if(d.startsolid)continue;let C=je[i^1],x=Ct(e,C,n,o);if(x=lo(x,p,f),d=r(c,l,m,x),d.startsolid)continue;let S=io(u.normal),E=_(d.endpos??x,N(S,.125)),b=ee(E,x),T=_(e,b);T=uo(T,p,f),!r(T,n,o,T).startsolid&&a.push({origin:T,distance:te(b)})}return a.length===0?{result:"no-good-position",origin:{...e}}:(a.sort((i,u)=>i.distance-u.distance),{result:"fixed",origin:{...a[0].origin}})}var mo=100,Ye=200,Vt=150,_e=25,po=15,fo=1,yo={x:0,y:0,z:1},xo=(t,e)=>({fraction:1,endpos:e,allsolid:!1,startsolid:!1});function Ze(t){let e=0,n=0,o=0;return t&262144&&(e+=1),t&524288&&(n+=1),t&1048576&&(e-=1),t&2097152&&(n-=1),t&4194304&&(o+=1),t&8388608&&(o-=1),e===0&&n===0&&o===0?g:{x:e,y:n,z:o}}function Et(t){let{watertype:e,waterlevel:n,onGround:o,waterSpeed:r}=t;if((e&16515072)===0)return g;let s=Ze(e);if(s===g)return g;let a=r;return n===1&&o&&(a*=.5),N(s,a)}function Pt(t){let{groundContents:e,scale:n=mo}=t,o=Ze(e);return o===g?g:N(o,n)}function Ne(t){let{wishVelocity:e,onLadder:n,onGround:o,waterlevel:r,watertype:s,groundContents:a,cmd:i,viewPitch:u,maxSpeed:l,ladderMod:m,waterSpeed:c,forward:d,origin:p,mins:f,maxs:C,trace:x=xo}=t,S=e;n&&(S=To({wishVelocity:S,cmd:i,waterlevel:r,viewPitch:u,maxSpeed:l,ladderMod:m,onGround:o,forward:d,origin:p,mins:f,maxs:C,trace:x}));let E=Et({watertype:s,waterlevel:r,onGround:o,waterSpeed:c});if(E!==g&&(S=_(S,E)),o){let b=Pt({groundContents:a});b!==g&&(S=_(S,b))}return S}function To(t){let{wishVelocity:e,cmd:n,waterlevel:o,viewPitch:r,maxSpeed:s,ladderMod:a,onGround:i,forward:u,origin:l,mins:m,maxs:c,trace:d}=t,p=n.buttons??0,f={...e};if((p&24)!==0){let C=He(o)?s:Ye;f={...f,z:p&8?C:-C}}else if(n.forwardmove){let C=bt(n.forwardmove,-Ye,Ye);if(n.forwardmove>0){let x=r<po?C:-C;f={...f,z:x}}else i||(f={...f,x:0,y:0}),f={...f,z:C}}else f={...f,z:0};if(!i)if(n.sidemove){let C=bt(n.sidemove,-Vt,Vt);o<2&&(C*=a);let x=z({x:u.x,y:u.y,z:0});if(x.x!==0||x.y!==0){let S=_(l,N(x,fo)),E=d(l,S,m,c);if(E.fraction!==1&&!E.allsolid&&E.contents!==void 0&&(E.contents&536870912)!==0&&E.planeNormal){let b=X(E.planeNormal,yo);f={...f,x:0,y:0},f=_(f,N(b,-C))}}}else f={...f,x:ht(f.x),y:ht(f.y)};return f}function bt(t,e,n){return Math.max(e,Math.min(n,t))}function ht(t){return t<-_e?-_e:t>_e?_e:t}var So=1.5,_t=.5,Co=1.01;function Vo(t){let{origin:e,cmd:n,frametime:o,pmFriction:r,pmStopSpeed:s,pmMaxSpeed:a,pmAccelerate:i,pmWaterSpeed:u,doclip:l,forward:m,right:c,mins:d,maxs:p,trace:f,overbounce:C=Co,stepSize:x,maxBumps:S,maxClipPlanes:E}=t,b=bo({velocity:t.velocity,pmFriction:r,pmStopSpeed:s,frametime:o}),T=ho({cmd:n,forward:m,right:c,pmMaxSpeed:a,pmWaterSpeed:u});if(T.wishspeed>0&&(b=J({velocity:b,wishdir:T.wishdir,wishspeed:T.accelSpeed,accel:i,frametime:o})),!l){let P=N(b,o);return{origin:_(e,P),velocity:b,planes:[],blocked:0,stopped:b.x===0&&b.y===0&&b.z===0,stepped:!1,stepHeight:0}}if(!f||!d||!p)throw new Error("applyPmoveFlyMove: doclip=true requires trace/mins/maxs");return Q({origin:e,velocity:b,frametime:o,overbounce:C,trace:f,mins:d,maxs:p,stepSize:x,maxBumps:S,maxClipPlanes:E})}function bo(t){let{velocity:e,pmFriction:n,pmStopSpeed:o,frametime:r}=t,s=D(e);if(s<1)return{x:0,y:0,z:0};let a=n*So,u=(s<o?o:s)*a*r,l=s-u;return l<0&&(l=0),l===s?e:N(e,l/s)}function ho(t){let{cmd:e,forward:n,right:o,pmMaxSpeed:r,pmWaterSpeed:s}=t,a=z(n),i=z(o),l={x:a.x*e.forwardmove+i.x*e.sidemove,y:a.y*e.forwardmove+i.y*e.sidemove,z:a.z*e.forwardmove+i.z*e.sidemove},m=e.buttons??0;m&8&&(l=_(l,{x:0,y:0,z:s*_t})),m&16&&(l=_(l,{x:0,y:0,z:-s*_t}));let c=D(l),d=c===0?{x:0,y:0,z:0}:z(l);if(c>r){let f=r/c;l=N(l,f),c=r,d=c===0?{x:0,y:0,z:0}:z(l)}let p=c*2;return{wishdir:d,wishspeed:c,accelSpeed:p}}function de(t){let{origin:e,mins:n,viewheight:o,pointContents:r}=t,s=o-n.z,a=s/2,i={x:e.x,y:e.y,z:e.z+n.z+1},u=r(i);if((u&56)===0)return{waterlevel:0,watertype:0};let l=u,m=1,c={x:i.x,y:i.y,z:e.z+n.z+a};if(u=r(c),(u&56)!==0){m=2;let d={x:i.x,y:i.y,z:e.z+n.z+s};u=r(d),(u&56)!==0&&(m=3)}return{waterlevel:m,watertype:l}}var Eo=270;function Po(t,e){return(t&e)!==0}function _o(t){let{pmFlags:e,pmType:n,buttons:o,waterlevel:r,onGround:s,velocity:a,jumpHeight:i=Eo}=t;if(e&16)return{pmFlags:e,onGround:s,velocity:a,jumpSound:!1,jumped:!1};let u=Po(o,8),l=e,m=s,c=!1,d=!1,p=a;if(!u)return l=G(l,2),{pmFlags:l,onGround:m,velocity:p,jumpSound:c,jumped:d};if(No(l))return{pmFlags:l,onGround:m,velocity:p,jumpSound:c,jumped:d};if(n===4)return{pmFlags:l,onGround:m,velocity:p,jumpSound:c,jumped:d};if(r>=2)return m=!1,{pmFlags:l,onGround:m,velocity:p,jumpSound:c,jumped:d};if(!m)return{pmFlags:l,onGround:m,velocity:p,jumpSound:c,jumped:d};l=W(l,2),l=G(l,4),m=!1,c=!0,d=!0;let f=a.z+i,C=f<i?i:f;return p={...a,z:C},{pmFlags:l,onGround:m,velocity:p,jumpSound:c,jumped:d}}function No(t){return(t&2)!==0}function ve(t,e,n){return{x:t,y:e,z:n}}function ge(t,e){let n=ve(-16,-16,0),o=ve(16,16,16);if(t===5)return{mins:n,maxs:o,viewheight:8};let r=t===4||(e&1)!==0,s=ve(n.x,n.y,-24),a=ve(o.x,o.y,r?4:32);return{mins:s,maxs:a,viewheight:r?-2:22}}var vo=4,go=32,Ao=8;function zo(t){let{pmType:e}=t;if(e===5){let a=ge(e,t.pmFlags);return{pmFlags:t.pmFlags,ducked:O(t.pmFlags,1),changed:!1,...a}}let n=t.pmFlags,o=!1;e===4?O(n,1)||(n=W(n,1),o=!0):Ro(t)?!O(n,1)&&!Fo(t)&&(n=W(n,1),o=!0):O(n,1)&&!Oo(t)&&(n=G(n,1),o=!0);let r=ge(e,n),s=e===4||O(n,1);return{pmFlags:n,ducked:s,changed:o,...r}}function Ro(t){return(t.buttons&16)===0||t.onLadder||t.n64Physics?!1:!!(t.hasGroundEntity||t.waterlevel<=1&&!Mo(t))}function Fo(t){return t.trace({start:t.origin,end:t.origin,mins:t.mins,maxs:Nt(t.maxs,vo),mask:3}).allsolid}function Oo(t){return t.trace({start:t.origin,end:t.origin,mins:t.mins,maxs:Nt(t.maxs,go),mask:3}).allsolid}function Mo(t){let e={x:t.origin.x,y:t.origin.y,z:t.origin.z-Ao};return t.trace({start:t.origin,end:e,mins:t.mins,maxs:t.maxs,mask:3}).fraction<1?!1:t.trace({start:t.origin,end:e,mins:t.mins,maxs:t.maxs,mask:56}).fraction<1}function Nt(t,e){return{x:t.x,y:t.y,z:e}}var Lo=.25,wo=180,Do=100,Wo=.7,ko=.9,Io=64,Bo=128,Go=1.01,Uo=1080;function Ho(t){let{pmType:e,n64Physics:n,velocity:o,startVelocity:r,origin:s,mins:a,maxs:i,viewheight:u,trace:l,pointContents:m}=t,c=t.pmFlags,d=t.pmTime,p,f=O(c,4),C,x=0;if(o.z>wo||e===1)c=G(c,4),f=!1;else{let T={x:s.x,y:s.y,z:s.z-Lo},P=l(s,T,a,i);C=P,x=P.contents??0;let V=P.planeNormal,y=P.fraction<1&&!!V&&V.z<Wo;if(y&&V){let A=_(s,V),k=l(s,A,a,i);k.fraction<1&&!k.startsolid&&(y=!1)}if(P.fraction===1||!V||y&&!P.startsolid)c=G(c,4),f=!1;else{f=!0,O(c,8)&&(c&=~Uo,d=0);let A=O(c,4);if(!A){!n&&o.z>=Do&&V.z>=ko&&!O(c,1)&&(c=W(c,1024),d=Io);let k=Y(o,V,Go);p=r.z-k.z}c=W(c,4),!A&&(n||O(c,1))&&(c=W(c,16),d=Bo)}}let{waterlevel:E,watertype:b}=de({origin:s,mins:a,viewheight:u,pointContents:m});return{pmFlags:c,pmTime:d,onGround:O(c,4),groundTrace:C,groundContents:x,waterlevel:E,watertype:b,impactDelta:p}}var vt=1,Jo=60,qe=1.01;function Ko(t){let{origin:e,frametime:n,mins:o,maxs:r,trace:s,overbounce:a=qe,stepSize:i,maxBumps:u,maxClipPlanes:l,hasTime:m,forward:c,right:d,cmd:p,pmFlags:f,onGround:C,gravity:x,pmType:S,pmAccelerate:E,pmAirAccelerate:b=vt,pmMaxSpeed:T,pmDuckSpeed:P,onLadder:V,waterlevel:y,watertype:A,groundContents:k,viewPitch:I,ladderMod:v,pmWaterSpeed:M}=t,h={...t.velocity},w=Xo(c,d,p);w=Ne({wishVelocity:w,onLadder:V,onGround:C,waterlevel:y,watertype:A,groundContents:k,cmd:p,viewPitch:I,maxSpeed:O(f,1)?P:T,ladderMod:v,waterSpeed:M,forward:c,origin:e,mins:o,maxs:r,trace:s});let L=O(f,1)?P:T,B=w,R=D(B);if(R!==0&&(B=z(B)),R>L){let K=L/R;w=N(w,K),R=L,R!==0&&(B=z(w))}return V?(h=J({velocity:h,wishdir:B,wishspeed:R,accel:E,frametime:n}),Math.abs(w.z)<Number.EPSILON&&(h=qo(h,x,n)),Ae({origin:e,velocity:h,frametime:n,mins:o,maxs:r,trace:s,overbounce:a,stepSize:i,maxBumps:u,maxClipPlanes:l,hasTime:m})):C?(h={...h,z:0},h=J({velocity:h,wishdir:B,wishspeed:R,accel:E,frametime:n}),x>0?h={...h,z:0}:h={...h,z:h.z-x*n},h.x===0&&h.y===0?{origin:e,velocity:h,planes:[],blocked:0,stopped:!0,stepped:!1,stepHeight:0}:Ae({origin:e,velocity:h,frametime:n,mins:o,maxs:r,trace:s,overbounce:a,stepSize:i,maxBumps:u,maxClipPlanes:l,hasTime:m})):(b>0?h=Je({velocity:h,wishdir:B,wishspeed:R,accel:b,frametime:n}):h=J({velocity:h,wishdir:B,wishspeed:R,accel:vt,frametime:n}),S!==1&&(h={...h,z:h.z-x*n}),Ae({origin:e,velocity:h,frametime:n,mins:o,maxs:r,trace:s,overbounce:a,stepSize:i,maxBumps:u,maxClipPlanes:l,hasTime:m}))}function jo(t){let{origin:e,frametime:n,mins:o,maxs:r,trace:s,overbounce:a=qe,stepSize:i,maxBumps:u,maxClipPlanes:l,hasTime:m,forward:c,right:d,cmd:p,pmFlags:f,onGround:C,pmMaxSpeed:x,pmDuckSpeed:S,pmWaterAccelerate:E,pmWaterSpeed:b,onLadder:T,watertype:P,groundContents:V,waterlevel:y,viewPitch:A,ladderMod:k}=t,I={...t.velocity},v=Yo(c,d,p);Zo(p,C)?v={...v,z:v.z-Jo}:gt(p,16)?v=_(v,{x:0,y:0,z:-b*.5}):gt(p,8)&&(v=_(v,{x:0,y:0,z:b*.5})),v=Ne({wishVelocity:v,onLadder:T,onGround:C,waterlevel:y,watertype:P,groundContents:V,cmd:p,viewPitch:A,maxSpeed:O(f,1)?S:x,ladderMod:k,waterSpeed:b,forward:c,origin:e,mins:o,maxs:r,trace:s});let M=v,h=D(M);if(h!==0&&(M=z(M)),h>x){let U=x/h;v=N(v,U),h=x,h!==0&&(M=z(v))}if(h*=.5,O(f,1)&&h>S){let U=S/h;v=N(v,U),h=S,h!==0&&(M=z(v))}return I=J({velocity:I,wishdir:M,wishspeed:h,accel:E,frametime:n}),Ae({origin:e,velocity:I,frametime:n,mins:o,maxs:r,trace:s,overbounce:a,stepSize:i,maxBumps:u,maxClipPlanes:l,hasTime:m})}function Xo(t,e,n){return{x:t.x*n.forwardmove+e.x*n.sidemove,y:t.y*n.forwardmove+e.y*n.sidemove,z:0}}function Yo(t,e,n){return{x:t.x*n.forwardmove+e.x*n.sidemove,y:t.y*n.forwardmove+e.y*n.sidemove,z:t.z*n.forwardmove+e.z*n.sidemove}}function gt(t,e){return!!((t.buttons??0)&e)}function Zo(t,e){let n=t.forwardmove===0&&t.sidemove===0,o=!((t.buttons??0)&24);return n&&o&&!e}function qo(t,e,n){let o=t.z,r=e*n;return o>0?(o-=r,o<0&&(o=0)):(o+=r,o>0&&(o=0)),{...t,z:o}}function Ae(t){let{origin:e,velocity:n,frametime:o,mins:r,maxs:s,trace:a,overbounce:i=qe,stepSize:u,maxBumps:l,maxClipPlanes:m,hasTime:c}=t;return Q({origin:e,velocity:n,frametime:o,trace:a,mins:r,maxs:s,overbounce:i,stepSize:u,maxBumps:l,maxClipPlanes:m,hasTime:c})}var $o=1,Qo=40,ze=50,At=350,er=2048,zt=.1,tr=800,nr=50,Rt=.7,or=18,rr=1.01,sr=2;function ar(t){let{pmFlags:e,pmTime:n,waterlevel:o,watertype:r,gravity:s,cmd:a,forward:i,origin:u,velocity:l,mins:m,maxs:c,viewheight:d,trace:p,pointContents:f,onGround:C,overbounce:x=rr,stepSize:S=or,maxBumps:E,maxClipPlanes:b}=t;if(n>0)return{pmFlags:e,pmTime:n,velocity:l,performedWaterJump:!1};let T=G(e,128),P=n,V=l,y=z({x:i.x,y:i.y,z:0}),A=te(y)>0;if(o<2&&A){let R=_(u,N(y,$o)),K=p(u,R,m,c),Ft=K.contents??0;K.fraction<1&&(Ft&536870912)!==0&&(T=W(T,128))}if(s===0)return{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1};if(((a.buttons??0)&8)===0&&a.forwardmove<=0)return{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1};if(o!==2)return{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1};if((r&8192)!==0)return{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1};if(!A)return{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1};let k=_(u,N(y,Qo)),I=p(u,k,m,c);if(I.fraction===1||!I.planeNormal||I.planeNormal.z>=Rt)return{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1};let v={x:y.x*ze,y:y.y*ze,z:At},M=u,h=!0,w=ir(s);for(let R=0;R<w;R++){v={x:v.x,y:v.y,z:v.z-s*zt},v.z<0&&(h=!1);let K=Q({origin:M,velocity:v,frametime:zt,trace:p,mins:m,maxs:c,overbounce:x,stepSize:S,maxBumps:E,maxClipPlanes:b,hasTime:h});M=K.origin,v=K.velocity}let U=_(M,{x:0,y:0,z:-sr}),L=p(M,U,m,c);return L.fraction===1||!L.planeNormal||L.planeNormal.z<Rt||L.endpos.z<u.z?{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1}:C&&Math.abs(u.z-L.endpos.z)<=S?{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1}:de({origin:L.endpos,mins:m,viewheight:d,pointContents:f}).waterlevel>=2?{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!1}:(T=W(T,8),P=er,V={x:y.x*ze,y:y.y*ze,z:At},{pmFlags:T,pmTime:P,velocity:V,performedWaterJump:!0})}function ir(t){if(t===0)return 0;let e=Math.floor(10*(tr/t));return e<=0?0:Math.min(nr,e)}var $e=[0,-1,1];function Qe(t){let{origin:e,mins:n,maxs:o,trace:r}=t;return!r(e,e,n,o).allsolid}function cr(t){let{origin:e,velocity:n,mins:o,maxs:r,previousOrigin:s,trace:a}=t;if(Qe({origin:e,mins:o,maxs:r,trace:a}))return{origin:{...e},velocity:{...n},resolution:"unchanged"};let i=Xe({origin:e,mins:o,maxs:r,trace:(u,l,m,c)=>a(u,c,l,m)});return i.result==="fixed"||i.result==="good-position"?{origin:i.origin,velocity:{...n},resolution:"fixed"}:{origin:{...s},velocity:{...n},resolution:"reverted"}}function lr(t){let{origin:e,mins:n,maxs:o,trace:r}=t;for(let s of $e)for(let a of $e)for(let i of $e){let u={x:e.x+i,y:e.y+a,z:e.z+s};if(Qe({origin:u,mins:n,maxs:o,trace:r}))return{origin:u,snapped:i!==0||a!==0||s!==0}}return{origin:{...e},snapped:!1}}function ur(t,e){return{x:t.x+e.x,y:t.y+e.y,z:t.z+e.z}}function mr(t){return t>89&&t<180?89:t<271&&t>=180?271:t}function dr(t){let{pmFlags:e,cmdAngles:n,deltaAngles:o}=t,r;(e&32)!==0?r={x:0,y:n.y+o.y,z:0}:(r=ur(n,o),r={...r,x:mr(r.x)});let s=Me(r);return{viewangles:r,...s}}var pr=200,fr=200,yr=200,xr=140,Tr=150,Sr=3;function Cr(t){let e=le(t);return e>89&&e<180?89:e<271&&e>=180?271:e}function Vr(t,e){return{x:Cr(t.x+e.x),y:le(t.y+e.y),z:le(t.z+e.z)}}function br(t,e){let n=e.sensitivityX??e.sensitivity,o=(e.sensitivityY??e.sensitivity)*(e.invertY?-1:1);return{x:t.deltaY*o,y:t.deltaX*n,z:0}}return Wt(hr);})();
|
|
2
2
|
//# sourceMappingURL=index.global.js.map
|