cs2_nav/
constants.rs

1/// Useful constants for the library.
2use crate::nav::DynamicAttributeFlags;
3
4// Sides
5pub const CT_SIDE: &str = "ct";
6pub const T_SIDE: &str = "t";
7
8// Server
9pub const DEFAULT_SERVER_TICKRATE: u32 = 128;
10
11// Rounds
12pub const DEFAULT_FREEZE_TIME_IN_SECS: f64 = 20.0;
13pub const DEFAULT_ROUND_TIME_IN_SECS: f64 = 115.0;
14pub const DEFAULT_BOMB_TIME_IN_SECS: f64 = 40.0;
15
16// Grenades
17pub const DEFAULT_SMOKE_DURATION_IN_SECS: f64 = 20.0;
18pub const DEFAULT_INFERNO_DURATION_IN_SECS: f64 = 7.03125;
19
20// Movement
21pub const RUNNING_SPEED: f64 = 250.0;
22pub const CROUCHING_SPEED: f64 = 85.0;
23
24// sv_ladder_scale_speed
25const LADDER_SCALE_SPEED: f64 = 0.78;
26// Factor 2 for using W + D
27pub const LADDER_SPEED: f64 = RUNNING_SPEED * 2.0 * LADDER_SCALE_SPEED;
28pub const CROUCHING_ATTRIBUTE_FLAG: DynamicAttributeFlags = DynamicAttributeFlags::new(65536_i64);
29pub const GRAVITY: f64 = 800.0;
30pub const JUMP_HEIGHT: f64 = 55.83;
31pub const CROUCH_JUMP_HEIGHT_GAIN: f64 = 66.02 - JUMP_HEIGHT;
32pub const CROUCH_JUMP_HEIGHT: f64 = JUMP_HEIGHT + CROUCH_JUMP_HEIGHT_GAIN;
33
34/// 0.5m * v^2 = m * g * h
35/// v = sqrt(2 * g * h)
36#[must_use]
37pub fn jump_speed() -> f64 {
38    (2.0 * GRAVITY * JUMP_HEIGHT).sqrt()
39}
40
41// Dimensions
42// https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive/Mapper%27s_Reference
43pub const PLAYER_HEIGHT: f64 = 72.0;
44pub const PLAYER_WIDTH: f64 = 32.0;
45pub const PLAYER_EYE_LEVEL: f64 = 64.093_811;
46pub const PLAYER_CROUCH_HEIGHT: f64 = 54.0;
47pub const PLAYER_CROUCH_EYE_LEVEL: f64 = 46.076_218;
48
49// Audio
50pub const FOOTSTEP_RANGE: u32 = 1100;