import { type Vec3 } from '../math/vec3.js'; import { type PmFlags, WaterLevel } from './constants.js'; import type { PmoveCmd, PmovePointContentsFn, PmoveTraceFn } from './types.js'; export interface SpecialMovementParams { readonly pmFlags: PmFlags; readonly pmTime: number; readonly waterlevel: WaterLevel; readonly watertype: number; readonly gravity: number; readonly cmd: PmoveCmd; readonly forward: Vec3; readonly origin: Vec3; readonly velocity: Vec3; readonly mins: Vec3; readonly maxs: Vec3; readonly viewheight: number; readonly trace: PmoveTraceFn; readonly pointContents: PmovePointContentsFn; readonly onGround: boolean; readonly overbounce?: number; readonly stepSize?: number; readonly maxBumps?: number; readonly maxClipPlanes?: number; } export interface SpecialMovementResult { readonly pmFlags: PmFlags; readonly pmTime: number; readonly velocity: Vec3; readonly performedWaterJump: boolean; } /** * Mirrors the ladder detection and water-jump probing logic from * `PM_CheckSpecialMovement` in `rerelease/p_move.cpp`. The helper clears and * re-adds the ladder flag based on nearby CONTENTS_LADDER brushes, then * simulates a potential water jump by firing the same 40-unit probe and * step-slide loop the C++ uses before committing to the upward velocity. */ export declare function checkSpecialMovement(params: SpecialMovementParams): SpecialMovementResult; //# sourceMappingURL=special.d.ts.map