local lsh = bit.lshift
local FL_ = {
DUCKING = lsh(1,1) -- Player flag -- Player is fully crouched
ANIMDUCKING = lsh(1,2) -- Player flag -- Player is in the process of crouching or uncrouching but could be in transition
-- Fully ducked: FL_.DUCKING and FL_.ANIMDUCKING
-- Previously fully ducked, unducking in progress: FL_.DUCKING and not FL_.ANIMDUCKING
-- Fully unducked: not FL_.DUCKING and not FL_.ANIMDUCKING
-- Previously fully unducked, ducking in progress: not FL_.DUCKING and FL_.ANIMDUCKING
ONGROUND = lsh(1,0) -- At rest / on the ground
WATERJUMP = lsh(1,3) -- player jumping out of water
ONTRAIN = lsh(1,4) -- Player is _controlling_ a train, so movement commands should be ignored on client during prediction.
INRAIN = lsh(1,5) -- Indicates the entity is standing in rain
FROZEN = lsh(1,6) -- Player is frozen for 3rd person camera
ATCONTROLS = lsh(1,7) -- Player can't move, but keeps key inputs for controlling another entity
CLIENT = lsh(1,8) -- Is a player
FAKECLIENT = lsh(1,9) -- Fake client, simulated server side; don't send network messages to them
-- NON-PLAYER SPECIFIC (i.e., not used by GameMovement or the client .dll ) -- Can still be applied to players, though
INWATER = lsh(1,10) -- In water
SWIM = lsh(1,12) -- Changes the SV_Movestep() behavior to not need to be on ground (but stay in water)
GODMODE = lsh(1,16)
}