/** * Mirrors the Quake II rerelease `water_level_t` enumeration from `game.h` * (lines 443-449). These numeric values are relied upon throughout the * movement code when checking how submerged a player is, so we keep the same * ordering to make future porting work straightforward. */ export declare enum WaterLevel { None = 0, Feet = 1, Waist = 2, Under = 3 } /** * Utility that matches the common rerelease checks that treat any level at or * above the `WATER_WAIST` constant as "significantly submerged" for friction * and current calculations. */ export declare function isAtLeastWaistDeep(level: WaterLevel): boolean; /** * Returns true when the player is considered underwater (the `WATER_UNDER` * case in the rerelease). This mirrors the places in `p_move.cpp` that gate * effects such as breath timers and screen warping. */ export declare function isUnderwater(level: WaterLevel): boolean; /** * Matches the Quake II rerelease `pmflags_t` bit layout from `game.h` so the * shared helpers can manipulate the same flag words as the authoritative game * and the client prediction layer. */ export declare const enum PmFlag { Ducked = 1, JumpHeld = 2, OnGround = 4, TimeWaterJump = 8, TimeLand = 16, TimeTeleport = 32, NoPositionalPrediction = 64, OnLadder = 128, NoAngularPrediction = 256, IgnorePlayerCollision = 512, TimeTrick = 1024 } export type PmFlags = number; export declare function hasPmFlag(flags: PmFlags, flag: PmFlag): boolean; export declare function addPmFlag(flags: PmFlags, flag: PmFlag): PmFlags; export declare function removePmFlag(flags: PmFlags, flag: PmFlag): PmFlags; /** * Player movement types mirrored from the rerelease `pmtype_t` enumeration. * The exact numeric values matter when syncing pmove state across the network * so we keep the same order as the C++ definition. */ export declare enum PmType { Normal = 0, Grapple = 1, NoClip = 2, Spectator = 3, Dead = 4, Gib = 5, Freeze = 6 } /** * Bitmask constants for the `buttons` field on the Quake II player command * structure. These mirror the rerelease `BUTTON_*` definitions so logic such as * jump/crouch checks can be shared between the server and client. */ export declare const enum PlayerButton { None = 0, Attack = 1, Use = 2, Holster = 4, Jump = 8, Crouch = 16, Attack2 = 32, Any = 128 } //# sourceMappingURL=constants.d.ts.map