#pragma once // @source: master/game/shared/cstrike15/gametypes.h #pragma region valve_gametypes enum EGameType : int { GAMETYPE_UNKNOWN = -1, GAMETYPE_CLASSIC, GAMETYPE_GUNGAME, GAMETYPE_TRAINING, GAMETYPE_CUSTOM, GAMETYPE_COOPERATIVE, GAMETYPE_SKIRMISH, GAMETYPE_FREEFORALL }; enum EGameMode : int { GAMEMODE_UNKNOWN = -1, // GAMETYPE_CLASSIC GAMEMODE_CLASSIC_CASUAL = 0, GAMEMODE_CLASSIC_COMPETITIVE, GAMEMODE_CLASSIC_SCRIM_COMPETITIVE2V2, GAMEMODE_CLASSIC_SCRIM_COMPETITIVE5V5, // GAMETYPE_GUNGAME GAMEMODE_GUNGAME_PROGRESSIVE = 0, GAMEMODE_GUNGAME_BOMB, GAMEMODE_GUNGAME_DEATHMATCH, // GAMETYPE_TRAINING GAMEMODE_TRAINING_DEFAULT = 0, // GAMETYPE_CUSTOM GAMEMODE_CUSTOM_DEFAULT = 0, // GAMETYPE_COOPERATIVE GAMEMODE_COOPERATIVE_DEFAULT = 0, GAMEMODE_COOPERATIVE_MISSION, // GAMETYPE_SKIRMISH GAMEMODE_SKIRMISH_DEFAULT = 0, // GAMETYPE_FREEFORALL GAMEMODE_FREEFORALL_SURVIVAL = 0 }; #pragma endregion enum ELifeState : int { LIFE_ALIVE = 0, LIFE_DYING, LIFE_DEAD, LIFE_RESPAWNABLE, LIFE_DISCARDBODY }; enum EFlags : int { FL_ONGROUND = (1 << 0), // entity is at rest / on the ground FL_DUCKING = (1 << 1), // player is fully crouched/uncrouched FL_ANIMDUCKING = (1 << 2), // player is in the process of crouching or uncrouching but could be in transition FL_WATERJUMP = (1 << 3), // player is jumping out of water FL_ONTRAIN = (1 << 4), // player is controlling a train, so movement commands should be ignored on client during prediction FL_INRAIN = (1 << 5), // entity is standing in rain FL_FROZEN = (1 << 6), // player is frozen for 3rd-person camera FL_ATCONTROLS = (1 << 7), // player can't move, but keeps key inputs for controlling another entity FL_CLIENT = (1 << 8), // entity is a client (player) FL_FAKECLIENT = (1 << 9), // entity is a fake client, simulated server side; don't send network messages to them FL_INWATER = (1 << 10), // entity is in water FL_FLY = (1 << 11), FL_SWIM = (1 << 12), FL_CONVEYOR = (1 << 13), FL_NPC = (1 << 14), FL_GODMODE = (1 << 15), FL_NOTARGET = (1 << 16), FL_AIMTARGET = (1 << 17), FL_PARTIALGROUND = (1 << 18), // entity is standing on a place where not all corners are valid FL_STATICPROP = (1 << 19), // entity is a static property FL_GRAPHED = (1 << 20), FL_GRENADE = (1 << 21), FL_STEPMOVEMENT = (1 << 22), FL_DONTTOUCH = (1 << 23), FL_BASEVELOCITY = (1 << 24), // entity have applied base velocity this frame FL_WORLDBRUSH = (1 << 25), // entity is not moveable/removeable brush (part of the world, but represented as an entity for transparency or something) FL_OBJECT = (1 << 26), FL_KILLME = (1 << 27), // entity is marked for death and will be freed by the game FL_ONFIRE = (1 << 28), FL_DISSOLVING = (1 << 29), FL_TRANSRAGDOLL = (1 << 30), // entity is turning into client-side ragdoll FL_UNBLOCKABLE_BY_PLAYER = (1 << 31) }; enum EEFlags : int { EFL_KILLME = (1 << 0), EFL_DORMANT = (1 << 1), EFL_NOCLIP_ACTIVE = (1 << 2), EFL_SETTING_UP_BONES = (1 << 3), EFL_KEEP_ON_RECREATE_ENTITIES = (1 << 4), EFL_DIRTY_SHADOWUPDATE = (1 << 5), EFL_NOTIFY = (1 << 6), EFL_FORCE_CHECK_TRANSMIT = (1 << 7), EFL_BOT_FROZEN = (1 << 8), EFL_SERVER_ONLY = (1 << 9), EFL_NO_AUTO_EDICT_ATTACH = (1 << 10), EFL_DIRTY_ABSTRANSFORM = (1 << 11), EFL_DIRTY_ABSVELOCITY = (1 << 12), EFL_DIRTY_ABSANGVELOCITY = (1 << 13), EFL_DIRTY_SURROUNDING_COLLISION_BOUNDS = (1 << 14), EFL_DIRTY_SPATIAL_PARTITION = (1 << 15), EFL_HAS_PLAYER_CHILD = (1 << 16), EFL_IN_SKYBOX = (1 << 17), EFL_USE_PARTITION_WHEN_NOT_SOLID = (1 << 18), EFL_TOUCHING_FLUID = (1 << 19), EFL_IS_BEING_LIFTED_BY_BARNACLE = (1 << 20), EFL_NO_ROTORWASH_PUSH = (1 << 21), EFL_NO_THINK_FUNCTION = (1 << 22), EFL_NO_GAME_PHYSICS_SIMULATION = (1 << 23), EFL_CHECK_UNTOUCH = (1 << 24), EFL_DONTBLOCKLOS = (1 << 25), EFL_DONTWALKON = (1 << 26), EFL_NO_DISSOLVE = (1 << 27), EFL_NO_MEGAPHYSCANNON_RAGDOLL = (1 << 28), EFL_NO_WATER_VELOCITY_CHANGE = (1 << 29), EFL_NO_PHYSCANNON_INTERACTION = (1 << 30), EFL_NO_DAMAGE_FORCES = (1 << 31) }; enum EMoveType : int { MOVETYPE_NONE = 0, MOVETYPE_ISOMETRIC, MOVETYPE_WALK, MOVETYPE_STEP, MOVETYPE_FLY, // no gravity, but still collides with stuff MOVETYPE_FLYGRAVITY, // flies through the air and is affected by gravity MOVETYPE_VPHYSICS, MOVETYPE_PUSH, // no clip to world, push and crush MOVETYPE_NOCLIP, // no gravity, no collisions, still do velocity/absvelocity MOVETYPE_LADDER, MOVETYPE_OBSERVER, // observer movement, depends on player's observer mode MOVETYPE_CUSTOM, MOVETYPE_LAST = MOVETYPE_CUSTOM, MOVETYPE_MAX_BITS = 4 }; // identifies how submerged in water a player is enum : int { WL_NOTINWATER = 0, WL_FEET, WL_WAIST, WL_EYES }; enum ETeamID : int { TEAM_UNK, TEAM_SPECTATOR, TEAM_TT, TEAM_CT };