286 lines
7.1 KiB
C++
286 lines
7.1 KiB
C++
#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
|
|
};
|
|
|
|
using ItemDefinitionIndex_t = std::uint16_t;
|
|
enum EItemDefinitionIndexes : ItemDefinitionIndex_t
|
|
{
|
|
WEAPON_NONE,
|
|
WEAPON_DESERT_EAGLE,
|
|
WEAPON_DUAL_BERETTAS,
|
|
WEAPON_FIVE_SEVEN,
|
|
WEAPON_GLOCK_18,
|
|
WEAPON_AK_47 = 7,
|
|
WEAPON_AUG,
|
|
WEAPON_AWP,
|
|
WEAPON_FAMAS,
|
|
WEAPON_G3SG1,
|
|
WEAPON_GALIL_AR = 13,
|
|
WEAPON_M249,
|
|
WEAPON_M4A4 = 16,
|
|
WEAPON_MAC_10,
|
|
WEAPON_P90 = 19,
|
|
WEAPON_REPULSOR_DEVICE,
|
|
WEAPON_MP5_SD = 23,
|
|
WEAPON_UMP_45,
|
|
WEAPON_XM1014,
|
|
WEAPON_PP_BIZON,
|
|
WEAPON_MAG_7,
|
|
WEAPON_NEGEV,
|
|
WEAPON_SAWED_OFF,
|
|
WEAPON_TEC_9,
|
|
WEAPON_ZEUS_X27,
|
|
WEAPON_P2000,
|
|
WEAPON_MP7,
|
|
WEAPON_MP9,
|
|
WEAPON_NOVA,
|
|
WEAPON_P250,
|
|
WEAPON_RIOT_SHIELD,
|
|
WEAPON_SCAR_20,
|
|
WEAPON_SG_553,
|
|
WEAPON_SSG_08,
|
|
WEAPON_KNIFE0,
|
|
WEAPON_KNIFE1,
|
|
WEAPON_FLASHBANG,
|
|
WEAPON_HIGH_EXPLOSIVE_GRENADE,
|
|
WEAPON_SMOKE_GRENADE,
|
|
WEAPON_MOLOTOV,
|
|
WEAPON_DECOY_GRENADE,
|
|
WEAPON_INCENDIARY_GRENADE,
|
|
WEAPON_C4_EXPLOSIVE,
|
|
WEAPON_KEVLAR_VEST,
|
|
WEAPON_KEVLAR_and_HELMET,
|
|
WEAPON_HEAVY_ASSAULT_SUIT,
|
|
WEAPON_NO_LOCALIZED_NAME0 = 54,
|
|
WEAPON_DEFUSE_KIT,
|
|
WEAPON_RESCUE_KIT,
|
|
WEAPON_MEDI_SHOT,
|
|
WEAPON_MUSIC_KIT,
|
|
WEAPON_KNIFE2,
|
|
WEAPON_M4A1_S,
|
|
WEAPON_USP_S,
|
|
WEAPON_TRADE_UP_CONTRACT,
|
|
WEAPON_CZ75_AUTO,
|
|
WEAPON_R8_REVOLVER,
|
|
WEAPON_TACTICAL_AWARENESS_GRENADE = 68,
|
|
WEAPON_BARE_HANDS,
|
|
WEAPON_BREACH_CHARGE,
|
|
WEAPON_TABLET = 72,
|
|
WEAPON_KNIFE3 = 74,
|
|
WEAPON_AXE,
|
|
WEAPON_HAMMER,
|
|
WEAPON_WRENCH = 78,
|
|
WEAPON_SPECTRAL_SHIV = 80,
|
|
WEAPON_FIRE_BOMB,
|
|
WEAPON_DIVERSION_DEVICE,
|
|
WEAPON_FRAG_GRENADE,
|
|
WEAPON_SNOWBALL,
|
|
WEAPON_BUMP_MINE,
|
|
WEAPON_BAYONET = 500,
|
|
WEAPON_CLASSIC_KNIFE = 503,
|
|
WEAPON_FLIP_KNIFE = 505,
|
|
WEAPON_GUT_KNIFE,
|
|
WEAPON_KARAMBIT,
|
|
WEAPON_M9_BAYONET,
|
|
WEAPON_HUNTSMAN_KNIFE,
|
|
WEAPON_FALCHION_KNIFE = 512,
|
|
WEAPON_BOWIE_KNIFE = 514,
|
|
WEAPON_BUTTERFLY_KNIFE,
|
|
WEAPON_SHADOW_DAGGERS,
|
|
WEAPON_PARACORD_KNIFE,
|
|
WEAPON_SURVIVAL_KNIFE,
|
|
WEAPON_URSUS_KNIFE,
|
|
WEAPON_NAVAJA_KNIFE,
|
|
WEAPON_NOMAD_KNIFE,
|
|
WEAPON_STILETTO_KNIFE,
|
|
WEAPON_TALON_KNIFE,
|
|
WEAPON_SKELETON_KNIFE = 525,
|
|
};
|
|
|
|
enum EWeaponType : std::uint32_t
|
|
{
|
|
WEAPONTYPE_KNIFE = 0,
|
|
WEAPONTYPE_PISTOL = 1,
|
|
WEAPONTYPE_SUBMACHINEGUN = 2,
|
|
WEAPONTYPE_RIFLE = 3,
|
|
WEAPONTYPE_SHOTGUN = 4,
|
|
WEAPONTYPE_SNIPER_RIFLE = 5,
|
|
WEAPONTYPE_MACHINEGUN = 6,
|
|
WEAPONTYPE_C4 = 7,
|
|
WEAPONTYPE_TASER = 8,
|
|
WEAPONTYPE_GRENADE = 9,
|
|
WEAPONTYPE_EQUIPMENT = 10,
|
|
WEAPONTYPE_STACKABLEITEM = 11,
|
|
WEAPONTYPE_FISTS = 12,
|
|
WEAPONTYPE_BREACHCHARGE = 13,
|
|
WEAPONTYPE_BUMPMINE = 14,
|
|
WEAPONTYPE_TABLET = 15,
|
|
WEAPONTYPE_MELEE = 16,
|
|
WEAPONTYPE_SHIELD = 17,
|
|
WEAPONTYPE_ZONE_REPULSOR = 18,
|
|
WEAPONTYPE_UNKNOWN = 19
|
|
};
|