#pragma once namespace Game { typedef float vec_t; typedef vec_t vec3_t[3]; typedef vec_t vec2_t[2]; typedef vec_t vec4_t[4]; typedef vec_t vec5_t[5]; typedef int scr_entref_t; struct turretInfo_s { int inuse; int flags; int fireTime; vec2_t arcmin; vec2_t arcmax; float dropPitch; int stance; int prevStance; int fireSndDelay; vec3_t userOrigin; float playerSpread; int triggerDown; char fireSnd; char fireSndPlayer; char stopSnd; char stopSndPlayer; }; typedef enum { PLAYERVIEWLOCK_NONE = 0x0, PLAYERVIEWLOCK_FULL = 0x1, PLAYERVIEWLOCK_WEAPONJITTER = 0x2, PLAYERVIEWLOCKCOUNT = 0x3, } ViewLockTypes_t; typedef struct { float yaw; int timer; int transIndex; int flags; } mantleState_t; typedef enum { OBJST_EMPTY = 0x0, OBJST_ACTIVE = 0x1, OBJST_INVISIBLE = 0x2, OBJST_DONE = 0x3, OBJST_CURRENT = 0x4, OBJST_FAILED = 0x5, OBJST_NUMSTATES = 0x6, } objectiveState_t; typedef struct objective_s { objectiveState_t state; vec3_t origin; int entNum; int teamNum; int icon; } objective_t; typedef enum { HE_TYPE_FREE = 0x0, HE_TYPE_TEXT = 0x1, HE_TYPE_VALUE = 0x2, HE_TYPE_PLAYERNAME = 0x3, HE_TYPE_MAPNAME = 0x4, HE_TYPE_GAMETYPE = 0x5, HE_TYPE_MATERIAL = 0x6, HE_TYPE_TIMER_DOWN = 0x7, HE_TYPE_TIMER_UP = 0x8, HE_TYPE_TENTHS_TIMER_DOWN = 0x9, HE_TYPE_TENTHS_TIMER_UP = 0xA, HE_TYPE_CLOCK_DOWN = 0xB, HE_TYPE_CLOCK_UP = 0xC, HE_TYPE_WAYPOINT = 0xD, HE_TYPE_COUNT = 0xE, } he_type_t; typedef struct { char r; char g; char b; char a; } hudelem_colorsplit_t; typedef union { hudelem_colorsplit_t split; int rgba; } hudelem_color_t; typedef struct hudelem_s { he_type_t type; float x; float y; float z; float fontScale; int font; int alignOrg; int alignScreen; hudelem_color_t color; hudelem_color_t fromColor; int fadeStartTime; int fadeTime; int label; int width; int height; int materialIndex; int fromWidth; int fromHeight; int scaleStartTime; int scaleTime; float fromX; float fromY; int fromAlignOrg; int fromAlignScreen; int moveStartTime; int moveTime; int time; int duration; float value; int text; float sort; hudelem_color_t glowColor; } hudelem_t; typedef struct hudElemState_s { hudelem_t current[31]; hudelem_t archival[31]; } hudElemState_t; typedef struct playerState_s { int commandTime; int pm_type; int bobCycle; int pm_flags; int pm_time; vec3_t origin; vec3_t velocity; vec2_t oldVelocity; int weaponTime; int weaponDelay; int grenadeTimeLeft; int throwBackGrenadeOwner; int throwBackGrenadeTimeLeft; int gravity; float leanf; int speed; vec3_t delta_angles; int groundEntityNum; vec3_t vLadderVec; int jumpTime; float jumpOriginZ; int legsTime; int legsAnim; int torsoTime; int torsoAnim; int legsAnimDuration; int torsoAnimDuration; int damageTimer; int damageDuration; int flinchYawAnim; int movementDir; int eFlags; int eventSequence; int events[4]; unsigned int eventParms[4]; int oldEventSequence; int clientNum; int offHandIndex; unsigned int weapon; int weaponstate; float fWeaponPosFrac; int adsDelayTime; int viewmodelIndex; vec3_t viewangles; int viewHeightTarget; float viewHeightCurrent; int viewHeightLerpTime; int viewHeightLerpTarget; int viewHeightLerpDown; int unknown[5]; int damageEvent; int damageYaw; int damagePitch; int damageCount; int stats[6]; int ammo[128]; int ammoclip[128]; int weapFlags; int weapFlags2; int unknown2[2]; byte slot_none; byte slot_primary; byte slot_primaryb; int unknown3[5]; vec3_t mins; vec3_t maxs; float proneDirection; float proneDirectionPitch; float proneTorsoPitch; ViewLockTypes_t viewlocked; int viewlocked_entNum; int cursorHint; int cursorHintString; int cursorHintEntIndex; int unknown1; vec3_t unkAngles; float holdBreathScale; int holdBreathTimer; mantleState_t mantleState; int entityEventSequence; int weapAnim; float aimSpreadScale; int shellshockIndex; int shellshockTime; int shellshockDuration; objective_t objective[16]; int archiveTime; hudElemState_t hud; } playerState_t; typedef enum { STATE_PLAYING = 0x0, STATE_DEAD = 0x1, STATE_SPECTATOR = 0x2, STATE_INTERMISSION = 0x3, } sessionState_t; typedef enum { CON_DISCONNECTED = 0x0, CON_CONNECTING = 0x1, CON_CONNECTED = 0x2, } clientConnected_t; typedef struct usercmd_s { int serverTime; int buttons; byte weapon; byte offHandIndex; int angles[3]; char forwardmove; char rightmove; } usercmd_t; typedef enum { TEAM_NONE = 0x0, TEAM_AXIS = 0x1, TEAM_ALLIES = 0x2, TEAM_SPECTATOR = 0x3, } sessionTeam_t; typedef struct { sessionState_t state; int forceSpectatorClient; int statusIcon; int archiveTime; int score; int deaths; unsigned __int16 scriptPersId; byte pad2; byte pad; clientConnected_t connected; usercmd_t cmd; usercmd_t oldcmd; int localClient; int predictItemPickup; char name[32]; int maxHealth; int enterTime; int voteCount; int teamVoteCount; float unknown; int viewmodelIndex; int noSpectate; int teamInfo; int clientId; sessionTeam_t team; int model; int attachedModels[6]; int attachedModelsTags[6]; char manualModeName[32]; int psOffsetTime; } clientSession_t; typedef enum { TR_STATIONARY = 0x0, TR_INTERPOLATE = 0x1, TR_LINEAR = 0x2, TR_LINEAR_STOP = 0x3, TR_SINE = 0x4, TR_GRAVITY = 0x5, TR_GRAVITY_PAUSED = 0x6, TR_ACCELERATE = 0x7, TR_DECCELERATE = 0x8, } trType_t; typedef struct { trType_t trType; int trTime; int trDuration; vec3_t trBase; vec3_t trDelta; } trajectory_t; typedef struct entityState_s { int number; int eType; int eFlags; trajectory_t pos; trajectory_t apos; int time; int time2; vec3_t origin; vec3_t angles; int otherEntityNum; int attackerEntityNum; int groundEntityNum; int constantLight; int loopSound; int surfaceFlags; int modelindex; int clientNum; int iHeadIcon; int iHeadIconTeam; int solid; int eventParm; int eventSequence; vec4_t events; vec4_t eventParms; int weapon; int legsAnim; int torsoAnim; int stage; int loopfxid; int hintstring; int animMovetype; vec3_t unkAngles; } entityState_t; typedef struct { byte linked; byte bmodel; byte svFlags; byte pad1; int clientMask[2]; byte inuse; byte pad2[3]; int broadcastTime; vec3_t mins; vec3_t maxs; int contents; vec3_t absmin; vec3_t absmax; vec3_t currentOrigin; vec3_t currentAngles; unsigned __int16 ownerNum; unsigned __int16 pad3; int eventTime; } entityShared_t; typedef struct gentity_s { entityState_t s; entityShared_t r; struct gclient_s *client; turretInfo_s *pTurretInfo; byte physicsObject; byte takedamage; byte active; byte nopickup; byte model; byte dobjbits; byte handler; byte team; unsigned __int16 classname; unsigned __int16 target; unsigned __int16 targetname; unsigned __int16 padding; int spawnflags; int flags; int eventTime; int freeAfterEvent; int unlinkAfterEvent; int clipmask; int framenum; struct gentity_s *parent; int nextthink; int healthPoints; int reservedHealth; int damage; int splashDamage; int splashRadius; float pfDecelTimeMove; float pfDecelTimeRotate; float pfSpeedMove; float pfSpeedRotate; float pfMidTimeMove; float pfMidTimeRotate; vec3_t vPos1Move; vec3_t vPos2Move; vec3_t vPos3Move; vec3_t vPos1Rotate; vec3_t vPos2Rotate; vec3_t vPos3Rotate; int moverState; struct gentity_s **linkedEntities; byte attachedModels[6]; unsigned __int16 attachedModelsIndexes; unsigned __int16 numAttachedModels; int animTree; vec4_t color; } gentity_t; typedef struct gclient_s { playerState_t ps; clientSession_t sess; int spectatorClient; int noclip; int ufo; int bFrozen; int lastCmdTime; int buttons; int oldbuttons; int latched_buttons; int buttonsSinceLastFrame; vec3_t oldOrigin; float fGunPitch; float fGunYaw; int damage_blood; vec3_t damage_from; int damage_fromWorld; int accurateCount; int accuracy_shots; int accuracy_hits; int inactivityTime; int inactivityWarning; int playerTalkTime; int rewardTime; float currentAimSpreadScale; int unknown_space[2]; int unknownClientEndFrameVar; int unknown_space2[3]; gentity_t *lookAtEntity; int activateEntNumber; int activateTime; int nonPVSFriendlyEntNum; int pingPlayerTime; int damageFeedBackTime; vec2_t damageFeedBackDir; vec3_t swayViewAngles; vec3_t swayOffset; vec3_t swayAngles; int unknown_space3[7]; float weaponRecoil; int unknown_space4[3]; int lastServerTime; int lastActivateTime; } gclient_t; typedef enum { MOD_UNKNOWN = 0x0, MOD_PISTOL_BULLET = 0x1, MOD_RIFLE_BULLET = 0x2, MOD_GRENADE = 0x3, MOD_GRENADE_SPLASH = 0x4, MOD_PROJECTILE = 0x5, MOD_PROJECTILE_SPLASH = 0x6, MOD_MELEE = 0x7, MOD_HEAD_SHOT = 0x8, MOD_CRUSH = 0x9, MOD_TELEFRAG = 0xA, MOD_FALLING = 0xB, MOD_SUICIDE = 0xC, MOD_TRIGGER_HURT = 0xD, MOD_EXPLOSIVE = 0xE, MOD_BAD = 0xF, } meansOfDeath_t; enum svc_ops_e { svc_nop = 0x0, svc_gamestate = 0x1, svc_configstring = 0x2, svc_baseline = 0x3, svc_serverCommand = 0x4, svc_download = 0x5, svc_snapshot = 0x6, svc_EOF = 0x7, }; typedef enum { ET_GENERAL = 0x0, ET_PLAYER = 0x1, ET_CORPSE = 0x2, ET_ITEM = 0x3, ET_MISSILE = 0x4, ET_INVISIBLE = 0x5, ET_SCRIPTMOVER = 0x6, } entityType_t; typedef enum { TEAM_FREE = 0x0, TEAM_RED = 0x1, TEAM_BLUE = 0x2, TEAM_SPEC = 0x3, TEAM_NUM_TEAMS = 0x4, } team_t; typedef enum { CS_FREE = 0x0, CS_ZOMBIE = 0x1, CS_CONNECTED = 0x2, CS_PRIMED = 0x3, CS_ACTIVE = 0x4, } clientState_t; typedef enum { NA_BOT = 0x0, NA_BAD = 0x0, NA_LOOPBACK = 0x2, NA_BROADCAST = 0x3, NA_IP = 0x4, NA_IPX = 0x5, NA_BROADCAST_IPX = 0x6, } netadrtype_t; typedef struct { netadrtype_t type; byte ip[4]; unsigned __int16 port; byte ipx[10]; } netadr_t; typedef enum { NS_CLIENT = 0x0, NS_SERVER = 0x1, } netsrc_t; typedef struct { int overflowed; byte *data; int maxsize; int cursize; int readcount; int bit; } msg_t; typedef union { int i; byte rgba[4]; } ucolor_t; typedef enum : unsigned __int16 { CVAR_FLAG_ARCHIVE = 1 << 0, // 0x0001 CVAR_FLAG_USERINFO = 1 << 1, // 0x0002 CVAR_FLAG_SERVERINFO = 1 << 2, // 0x0004 CVAR_FLAG_SYSTEMINFO = 1 << 3, // 0x0008 CVAR_FLAG_INIT = 1 << 4, // 0x0010 CVAR_FLAG_LATCH = 1 << 5, // 0x0020 CVAR_FLAG_ROM = 1 << 6, // 0x0040 CVAR_FLAG_CHEAT = 1 << 7, // 0x0080 CVAR_FLAG_DEVELOPER = 1 << 8, // 0x0100 CVAR_FLAG_SAVED = 1 << 9, // 0x0200 CVAR_FLAG_NORESTART = 1 << 10, // 0x0400 CVAR_FLAG_CHANGEABLE_RESET = 1 << 12, // 0x1000 CVAR_FLAG_EXTERNAL = 1 << 14, // 0x4000 CVAR_FLAG_AUTOEXEC = 1 << 15, // 0x8000 } CvarFlags; enum cvarType_t : char { CVAR_TYPE_BOOL = 0x0, CVAR_TYPE_FLOAT = 0x1, CVAR_TYPE_FLOAT_2 = 0x2, CVAR_TYPE_FLOAT_3 = 0x3, CVAR_TYPE_FLOAT_4 = 0x4, CVAR_TYPE_INT = 0x5, CVAR_TYPE_ENUM = 0x6, CVAR_TYPE_STRING = 0x7, CVAR_TYPE_COLOR = 0x8, CVAR_TYPE_COUNT = 0x9, }; enum DvarSetSource { CVAR_SOURCE_INTERNAL = 0x0, CVAR_SOURCE_EXTERNAL = 0x1, CVAR_SOURCE_SCRIPT = 0x2, CVAR_SOURCE_DEVGUI = 0x3, }; union cvar_value_s { float floatval; int integer; char *string; byte boolean; vec2_t vec2; vec3_t vec3; vec4_t vec4; ucolor_t color; }; union cvar_bounds_s { int imin; float fmin; }; union cvar_bounds_enum_s { int imax; float fmax; const char **enumStr; }; typedef struct cvar_s { char *name; CvarFlags flags; cvarType_t type; byte modified; cvar_value_s current; cvar_value_s latched; cvar_value_s reset; cvar_bounds_s domain; cvar_bounds_enum_s domain_enum; struct cvar_s *next; struct cvar_s *hashNext; } cvar_t; struct VariableStackBuffer { const char *pos; unsigned __int16 size; unsigned __int16 bufLen; unsigned __int16 localId; char time; char buf[1]; }; union VariableUnion { int intValue; float floatValue; unsigned int stringValue; const float *vectorValue; const char *codePosValue; unsigned int pointerValue; struct VariableStackBuffer *stackValue; unsigned int entityOffset; }; union ObjectInfo_u { unsigned __int16 size; unsigned __int16 entnum; unsigned __int16 nextEntId; unsigned __int16 self; }; struct ObjectInfo { unsigned __int16 refCount; union ObjectInfo_u u; }; union VariableValueInternal_u { unsigned __int16 next; union VariableUnion u; struct ObjectInfo o; }; union VariableValueInternal_w { unsigned int status; unsigned int type; unsigned int name; unsigned int classnum; unsigned int notifyName; unsigned int waitTime; unsigned int parentLocalId; }; union VariableValueInternal_v { unsigned __int16 next; unsigned __int16 index; }; typedef struct { union VariableUnion u; int type; } VariableValue; union Variable_u { unsigned __int16 prev; unsigned __int16 prevSibling; }; struct Variable { unsigned __int16 id; union Variable_u u; }; typedef struct { struct Variable hash; union VariableValueInternal_u u; union VariableValueInternal_w w; union VariableValueInternal_v v; unsigned __int16 nextSibling; } VariableValueInternal; typedef struct { const char *fieldBuffer; struct HunkUser *programHunkUser; unsigned __int16 canonicalStrCount; byte developer; byte developer_script; byte evaluate; byte pad[3]; const char *error_message; int error_index; unsigned int time; unsigned int timeArrayId; unsigned int pauseArrayId; unsigned int levelId; unsigned int gameId; unsigned int animId; unsigned int freeEntList; unsigned int tempVariable; byte bInited; byte pad2; unsigned __int16 savecount; unsigned int checksum; unsigned int entId; unsigned int entFieldName; const char *programBuffer; const char *endScriptBuffer; } scrVarPub_t; struct function_stack_t { const char *pos; unsigned int localId; unsigned int localVarCount; VariableValue *top; VariableValue *startTop; }; struct function_frame_t { struct function_stack_t fs; int topType; }; typedef struct { unsigned int *localVars; VariableValue *maxstack; int function_count; struct function_frame_t *function_frame; VariableValue *top; byte debugCode; byte abort_on_error; byte terminal_error; byte pad; unsigned int inparamcount; unsigned int outparamcount; struct function_frame_t function_frame_start[32]; VariableValue stack[2048]; } scrVmPub_t; typedef int fileHandle_t; typedef void (__cdecl *xfunction_t)(); typedef void (__cdecl *xmethod_t)(scr_entref_t); typedef void (*xcommand_t)(void); typedef struct scr_function_s { const char *name; xfunction_t call; int developer; } scr_function_t; typedef struct scr_method_s { const char *name; xmethod_t call; int developer; } scr_method_t; typedef enum { EV_NONE = 0x0, EV_FOOTSTEP_RUN_DEFAULT = 0x1, EV_FOOTSTEP_RUN_BARK = 0x2, EV_FOOTSTEP_RUN_BRICK = 0x3, EV_FOOTSTEP_RUN_CARPET = 0x4, EV_FOOTSTEP_RUN_CLOTH = 0x5, EV_FOOTSTEP_RUN_CONCRETE = 0x6, EV_FOOTSTEP_RUN_DIRT = 0x7, EV_FOOTSTEP_RUN_FLESH = 0x8, EV_FOOTSTEP_RUN_FOLIAGE = 0x9, EV_FOOTSTEP_RUN_GLASS = 0xA, EV_FOOTSTEP_RUN_GRASS = 0xB, EV_FOOTSTEP_RUN_GRAVEL = 0xC, EV_FOOTSTEP_RUN_ICE = 0xD, EV_FOOTSTEP_RUN_METAL = 0xE, EV_FOOTSTEP_RUN_MUD = 0xF, EV_FOOTSTEP_RUN_PAPER = 0x10, EV_FOOTSTEP_RUN_PLASTER = 0x11, EV_FOOTSTEP_RUN_ROCK = 0x12, EV_FOOTSTEP_RUN_SAND = 0x13, EV_FOOTSTEP_RUN_SNOW = 0x14, EV_FOOTSTEP_RUN_WATER = 0x15, EV_FOOTSTEP_RUN_WOOD = 0x16, EV_FOOTSTEP_RUN_ASPHALT = 0x17, EV_FOOTSTEP_WALK_DEFAULT = 0x18, EV_FOOTSTEP_WALK_BARK = 0x19, EV_FOOTSTEP_WALK_BRICK = 0x1A, EV_FOOTSTEP_WALK_CARPET = 0x1B, EV_FOOTSTEP_WALK_CLOTH = 0x1C, EV_FOOTSTEP_WALK_CONCRETE = 0x1D, EV_FOOTSTEP_WALK_DIRT = 0x1E, EV_FOOTSTEP_WALK_FLESH = 0x1F, EV_FOOTSTEP_WALK_FOLIAGE = 0x20, EV_FOOTSTEP_WALK_GLASS = 0x21, EV_FOOTSTEP_WALK_GRASS = 0x22, EV_FOOTSTEP_WALK_GRAVEL = 0x23, EV_FOOTSTEP_WALK_ICE = 0x24, EV_FOOTSTEP_WALK_METAL = 0x25, EV_FOOTSTEP_WALK_MUD = 0x26, EV_FOOTSTEP_WALK_PAPER = 0x27, EV_FOOTSTEP_WALK_PLASTER = 0x28, EV_FOOTSTEP_WALK_ROCK = 0x29, EV_FOOTSTEP_WALK_SAND = 0x2A, EV_FOOTSTEP_WALK_SNOW = 0x2B, EV_FOOTSTEP_WALK_WATER = 0x2C, EV_FOOTSTEP_WALK_WOOD = 0x2D, EV_FOOTSTEP_WALK_ASPHALT = 0x2E, EV_FOOTSTEP_PRONE_DEFAULT = 0x2F, EV_FOOTSTEP_PRONE_BARK = 0x30, EV_FOOTSTEP_PRONE_BRICK = 0x31, EV_FOOTSTEP_PRONE_CARPET = 0x32, EV_FOOTSTEP_PRONE_CLOTH = 0x33, EV_FOOTSTEP_PRONE_CONCRETE = 0x34, EV_FOOTSTEP_PRONE_DIRT = 0x35, EV_FOOTSTEP_PRONE_FLESH = 0x36, EV_FOOTSTEP_PRONE_FOLIAGE = 0x37, EV_FOOTSTEP_PRONE_GLASS = 0x38, EV_FOOTSTEP_PRONE_GRASS = 0x39, EV_FOOTSTEP_PRONE_GRAVEL = 0x3A, EV_FOOTSTEP_PRONE_ICE = 0x3B, EV_FOOTSTEP_PRONE_METAL = 0x3C, EV_FOOTSTEP_PRONE_MUD = 0x3D, EV_FOOTSTEP_PRONE_PAPER = 0x3E, EV_FOOTSTEP_PRONE_PLASTER = 0x3F, EV_FOOTSTEP_PRONE_ROCK = 0x40, EV_FOOTSTEP_PRONE_SAND = 0x41, EV_FOOTSTEP_PRONE_SNOW = 0x42, EV_FOOTSTEP_PRONE_WATER = 0x43, EV_FOOTSTEP_PRONE_WOOD = 0x44, EV_FOOTSTEP_PRONE_ASPHALT = 0x45, EV_JUMP_DEFAULT = 0x46, EV_JUMP_BARK = 0x47, EV_JUMP_BRICK = 0x48, EV_JUMP_CARPET = 0x49, EV_JUMP_CLOTH = 0x4A, EV_JUMP_CONCRETE = 0x4B, EV_JUMP_DIRT = 0x4C, EV_JUMP_FLESH = 0x4D, EV_JUMP_FOLIAGE = 0x4E, EV_JUMP_GLASS = 0x4F, EV_JUMP_GRASS = 0x50, EV_JUMP_GRAVEL = 0x51, EV_JUMP_ICE = 0x52, EV_JUMP_METAL = 0x53, EV_JUMP_MUD = 0x54, EV_JUMP_PAPER = 0x55, EV_JUMP_PLASTER = 0x56, EV_JUMP_ROCK = 0x57, EV_JUMP_SAND = 0x58, EV_JUMP_SNOW = 0x59, EV_JUMP_WATER = 0x5A, EV_JUMP_WOOD = 0x5B, EV_JUMP_ASPHALT = 0x5C, EV_LANDING_DEFAULT = 0x5D, EV_LANDING_BARK = 0x5E, EV_LANDING_BRICK = 0x5F, EV_LANDING_CARPET = 0x60, EV_LANDING_CLOTH = 0x61, EV_LANDING_CONCRETE = 0x62, EV_LANDING_DIRT = 0x63, EV_LANDING_FLESH = 0x64, EV_LANDING_FOLIAGE = 0x65, EV_LANDING_GLASS = 0x66, EV_LANDING_GRASS = 0x67, EV_LANDING_GRAVEL = 0x68, EV_LANDING_ICE = 0x69, EV_LANDING_METAL = 0x6A, EV_LANDING_MUD = 0x6B, EV_LANDING_PAPER = 0x6C, EV_LANDING_PLASTER = 0x6D, EV_LANDING_ROCK = 0x6E, EV_LANDING_SAND = 0x6F, EV_LANDING_SNOW = 0x70, EV_LANDING_WATER = 0x71, EV_LANDING_WOOD = 0x72, EV_LANDING_ASPHALT = 0x73, EV_LANDING_PAIN_DEFAULT = 0x74, EV_LANDING_PAIN_BARK = 0x75, EV_LANDING_PAIN_BRICK = 0x76, EV_LANDING_PAIN_CARPET = 0x77, EV_LANDING_PAIN_CLOTH = 0x78, EV_LANDING_PAIN_CONCRETE = 0x79, EV_LANDING_PAIN_DIRT = 0x7A, EV_LANDING_PAIN_FLESH = 0x7B, EV_LANDING_PAIN_FOLIAGE = 0x7C, EV_LANDING_PAIN_GLASS = 0x7D, EV_LANDING_PAIN_GRASS = 0x7E, EV_LANDING_PAIN_GRAVEL = 0x7F, EV_LANDING_PAIN_ICE = 0x80, EV_LANDING_PAIN_METAL = 0x81, EV_LANDING_PAIN_MUD = 0x82, EV_LANDING_PAIN_PAPER = 0x83, EV_LANDING_PAIN_PLASTER = 0x84, EV_LANDING_PAIN_ROCK = 0x85, EV_LANDING_PAIN_SAND = 0x86, EV_LANDING_PAIN_SNOW = 0x87, EV_LANDING_PAIN_WATER = 0x88, EV_LANDING_PAIN_WOOD = 0x89, EV_LANDING_PAIN_ASPHALT = 0x8A, EV_FOLIAGE_SOUND = 0x8B, EV_STANCE_FORCE_STAND = 0x8C, EV_STANCE_FORCE_CROUCH = 0x8D, EV_STANCE_FORCE_PRONE = 0x8E, EV_STEP_VIEW = 0x8F, EV_ITEM_PICKUP = 0x90, EV_AMMO_PICKUP = 0x91, EV_NOAMMO = 0x92, EV_EMPTYCLIP = 0x93, EV_EMPTY_OFFHAND = 0x94, EV_RESET_ADS = 0x95, EV_RELOAD = 0x96, EV_RELOAD_FROM_EMPTY = 0x97, EV_RELOAD_START = 0x98, EV_RELOAD_END = 0x99, EV_RAISE_WEAPON = 0x9A, EV_PUTAWAY_WEAPON = 0x9B, EV_WEAPON_ALT = 0x9C, EV_PULLBACK_WEAPON = 0x9D, EV_FIRE_WEAPON = 0x9E, EV_FIRE_WEAPONB = 0x9F, EV_FIRE_WEAPON_LASTSHOT = 0xA0, EV_RECHAMBER_WEAPON = 0xA1, EV_EJECT_BRASS = 0xA2, EV_MELEE_SWIPE = 0xA3, EV_FIRE_MELEE = 0xA4, EV_PREP_OFFHAND = 0xA5, EV_USE_OFFHAND = 0xA6, EV_SWITCH_OFFHAND = 0xA7, EV_BINOCULAR_ENTER = 0xA8, EV_BINOCULAR_EXIT = 0xA9, EV_BINOCULAR_FIRE = 0xAA, EV_BINOCULAR_RELEASE = 0xAB, EV_BINOCULAR_DROP = 0xAC, EV_MELEE_HIT = 0xAD, EV_MELEE_MISS = 0xAE, EV_FIRE_WEAPON_MG42 = 0xAF, EV_FIRE_QUADBARREL_1 = 0xB0, EV_FIRE_QUADBARREL_2 = 0xB1, EV_BULLET_TRACER = 0xB2, EV_SOUND_ALIAS = 0xB3, EV_SOUND_ALIAS_AS_MASTER = 0xB4, EV_BULLET_HIT_SMALL = 0xB5, EV_BULLET_HIT_LARGE = 0xB6, EV_SHOTGUN_HIT = 0xB7, EV_BULLET_HIT_AP = 0xB8, EV_BULLET_HIT_CLIENT_SMALL = 0xB9, EV_BULLET_HIT_CLIENT_LARGE = 0xBA, EV_GRENADE_BOUNCE = 0xBB, EV_GRENADE_EXPLODE = 0xBC, EV_ROCKET_EXPLODE = 0xBD, EV_ROCKET_EXPLODE_NOMARKS = 0xBE, EV_CUSTOM_EXPLODE = 0xBF, EV_CUSTOM_EXPLODE_NOMARKS = 0xC0, EV_BULLET = 0xC1, EV_PLAY_FX = 0xC2, EV_PLAY_FX_ON_TAG = 0xC3, EV_EARTHQUAKE = 0xC4, EV_GRENADE_SUICIDE = 0xC5, EV_OBITUARY = 0xC6, } entity_event_t; enum scriptAnimEventTypes_t { ANIM_ET_PAIN = 0x0, ANIM_ET_DEATH = 0x1, ANIM_ET_FIREWEAPON = 0x2, ANIM_ET_JUMP = 0x3, ANIM_ET_JUMPBK = 0x4, ANIM_ET_LAND = 0x5, ANIM_ET_DROPWEAPON = 0x6, ANIM_ET_RAISEWEAPON = 0x7, ANIM_ET_CLIMB_MOUNT = 0x8, ANIM_ET_CLIMB_DISMOUNT = 0x9, ANIM_ET_RELOAD = 0xA, ANIM_ET_CROUCH_TO_PRONE = 0xB, ANIM_ET_PRONE_TO_CROUCH = 0xC, ANIM_ET_STAND_TO_CROUCH = 0xD, ANIM_ET_CROUCH_TO_STAND = 0xE, ANIM_ET_STAND_TO_PRONE = 0xF, ANIM_ET_PRONE_TO_STAND = 0x10, ANIM_ET_MELEEATTACK = 0x11, ANIM_ET_SHELLSHOCK = 0x12, NUM_ANIM_EVENTTYPES = 0x13, }; enum StanceState { CL_STANCE_STAND = 0x0, CL_STANCE_CROUCH = 0x1, CL_STANCE_PRONE = 0x2, CL_STANCE_DIVE_TO_PRONE = 0x3, }; typedef enum { TRACE_HITTYPE_NONE = 0x0, TRACE_HITTYPE_ENTITY = 0x1, TRACE_HITTYPE_DYNENT_MODEL = 0x2, TRACE_HITTYPE_DYNENT_BRUSH = 0x3, TRACE_HITTYPE_GLASS = 0x4, } TraceHitType; typedef struct trace_s { float fraction; vec3_t normal; int surfaceFlags; int contents; const char *material; int entityNum; byte allsolid; byte startsolid; byte walkable; byte padding; } trace_t; typedef struct leakyBucket_s { netadrtype_t type; unsigned __int8 adr[4]; int lastTime; signed __int8 burst; int hash; struct leakyBucket_s *prev; struct leakyBucket_s *next; } leakyBucket_t; typedef void netProfileInfo_t; typedef struct { int outgoingSequence; netsrc_t sock; int dropped; int incomingSequence; netadr_t remoteAddress; int qport; int fragmentSequence; int fragmentLength; byte fragmentBuffer[131072]; int unsentFragments; int unsentFragmentStart; int unsentLength; byte unsentBuffer[131072]; netProfileInfo_t *netProfile; } netchan_t; typedef struct { char command[1024]; int cmdTime; int cmdType; } reliableCommands_t; typedef struct { netadr_t adr; int challenge; int time; int pingTime; int firstTime; int firstPing; int connected; int guid; char pbguid[64]; int ipAuthorize; } challenge_t; typedef enum { STAT_HEALTH = 0x0, STAT_DEAD_YAW = 0x1, STAT_MAX_HEALTH = 0x2, STAT_FRIENDLY_LOOKAT_CLIENTNUM = 0x3, STAT_FRIENDLY_LOOKAT_HEALTH = 0x4, STAT_SPAWN_COUNT = 0x5, } statIndex_t; typedef struct { playerState_t ps; int num_entities; int num_clients; int first_entity; int first_client; unsigned int messageSent; unsigned int messageAcked; int messageSize; } clientSnapshot_t; #pragma pack(push, 1) typedef struct { char num; char data[256]; int dataLen; } voices_t; #pragma pack(pop) typedef struct client_s { clientState_t state; int unksnapshotvar; int unksnapshotvar2; char userinfo[1024]; reliableCommands_t reliableCommands[128]; int reliableSequence; int reliableAcknowledge; int reliableSent; int messageAcknowledge; int gamestateMessageNum; int challenge; usercmd_t lastUsercmd; int lastClientCommand; char lastClientCommandString[1024]; gentity_t *gentity; char name[32]; char downloadName[64]; fileHandle_t download; int downloadSize; int downloadCount; int downloadClientBlock; int downloadCurrentBlock; int downloadXmitBlock; unsigned __int8 *downloadBlocks[8]; int downloadBlockSize[8]; int downloadEOF; int downloadSendTime; char wwwDownloadURL[256]; int wwwDownload; int wwwDownloadStarted; int wwwDlAck; int wwwDl_failed; int deltaMessage; int floodprotect; int lastPacketTime; int lastConnectTime; int nextSnapshotTime; int rateDelayed; int timeoutCount; clientSnapshot_t frames[32]; int ping; int rate; int snapshotMsec; int pureAuthentic; netchan_t netchan; int guid; __int16 clscriptid; int bot; int serverId; voices_t voicedata[40]; int unsentVoiceData; byte mutedClients[64]; byte hasVoip; char pbguid[64]; } client_t; typedef struct archivedSnapshot_s { int start; int size; } archivedSnapshot_t; typedef struct cachedClient_s { int playerStateExists; clientState_t *cs; playerState_t *ps; } cachedClient_t; typedef struct { int initialized; int time; int snapFlagServerBit; client_t *clients; int numSnapshotEntities; int numSnapshotClients; int nextSnapshotEntities; int nextSnapshotClients; entityState_t *snapshotEntities; clientState_t *snapshotClients; int archivedSnapshotEnabled; int nextArchivedSnapshotFrames; archivedSnapshot_t *archivedSnapshotFrames; int *archivedSnapshotBuffer; int nextArchivedSnapshotBuffer; int nextCachedSnapshotEntities; int nextCachedSnapshotClients; int nextCachedSnapshotFrames; cachedClient_t cachedSnapshotClients; int nextHeartbeatTime; int nextStatusResponseTime; challenge_t challenges[1024]; netadr_t redirectAddress; netadr_t authorizeAddress; char netProfilingBuf[1504]; } serverStatic_t; typedef struct { const char *key; const char *value; } keyValueStr_t; typedef struct { byte spawnVarsValid; int numSpawnVars; keyValueStr_t spawnVars[64]; int numSpawnVarChars; char spawnVarChars[2048]; } SpawnVar; typedef struct { unsigned __int16 entnum; unsigned __int16 otherEntnum; int useCount; int otherUseCount; } trigger_info_t; typedef struct __declspec(align(4)) { struct gclient_s *clients; struct gentity_s *gentities; int gentitySize; int num_entities; struct gentity_s *firstFreeEnt; struct gentity_s *lastFreeEnt; fileHandle_t logFile; int initializing; int clientIsSpawning; objective_t objectives[16]; int maxclients; int framenum; int time; int previousTime; int frameTime; int startTime; int teamScores[4]; int lastTeammateHealthTime; int bUpdateScoresForIntermission; int manualNameChange; int numConnectedClients; int sortedClients[64]; char voteString[1024]; char voteDisplayString[1024]; int voteTime; int voteExecuteTime; int voteYes; int voteNo; int numVotingClients; byte gap[2072]; SpawnVar spawnVars; int savePersist; struct gentity_s *droppedWeaponCue[32]; float fFogOpaqueDist; float fFogOpaqueDistSqrd; int remapCount; int currentPlayerClone; trigger_info_t pendingTriggerList[256]; trigger_info_t currentTriggerList[256]; int pendingTriggerListSize; int currentTriggerListSize; int finished; int bPlayerIgnoreRadiusDamage; int bPlayerIgnoreRadiusDamageLatched; int registerWeapons; int bRegisterItems; int currentEntityThink; void *openScriptIOFileHandles[1]; char *openScriptIOFileBuffers[1]; int field_3610; int field_3614; int field_3618; int field_361C; int field_3620; } level_locals_t; typedef enum { SS_DEAD = 0x0, SS_LOADING = 0x1, SS_GAME = 0x2, } serverState_t; typedef struct { int cluster; int area; int firstLeafBrush; int numLeafBrushes; int firstLeafSurface; int numLeafSurfaces; } cLeaf_t; typedef struct cmodel_s { vec3_t mins; vec3_t maxs; cLeaf_t leaf; } cmodel_t; typedef struct { int svFlags; int clientMask[2]; vec3_t absmin; vec3_t absmax; } archivedEntityShared_t; typedef struct archivedEntity_s { entityState_t s; archivedEntityShared_t r; } archivedEntity_t; typedef struct svEntity_s { unsigned __int16 worldSector; unsigned __int16 nextEntityInWorldSector; archivedEntity_t baseline; int numClusters; int clusternums[16]; int lastCluster; int linkcontents; float linkmin[2]; float linkmax[2]; } svEntity_t; typedef struct { serverState_t state; int restarting; int start_frameTime; int checksumFeed; int timeResidual; int unk; struct cmodel_s *models[256]; char *configstrings[2048]; svEntity_t svEntities[1024]; char *entityParsePoint; gentity_t *gentities; int gentitySize; int num_entities; playerState_t *gameClients; int gameClientSize; int skelTimeStamp; int skelMemPos; int bpsWindow[20]; int bpsWindowSteps; int bpsTotalBytes; int bpsMaxBytes; int ubpsWindow[20]; int ubpsTotalBytes; int ubpsMaxBytes; float ucompAve; int ucompNum; char gametype[64]; } server_t; enum weapType_t { WEAPTYPE_BULLET = 0x0, WEAPTYPE_GRENADE = 0x1, WEAPTYPE_PROJECTILE = 0x2, WEAPTYPE_BINOCULARS = 0x3, WEAPTYPE_NUM = 0x4, }; enum weapClass_t { WEAPCLASS_RIFLE = 0x0, WEAPCLASS_MG = 0x1, WEAPCLASS_SMG = 0x2, WEAPCLASS_SPREAD = 0x3, WEAPCLASS_PISTOL = 0x4, WEAPCLASS_GRENADE = 0x5, WEAPCLASS_ROCKETLAUNCHER = 0x6, WEAPCLASS_TURRET = 0x7, WEAPCLASS_NON_PLAYER = 0x8, WEAPCLASS_ITEM = 0x9, WEAPCLASS_NUM = 0xA, }; enum ImpactType_t { IMPACT_TYPE_NONE = 0x0, IMPACT_TYPE_BULLET_SMALL = 0x1, IMPACT_TYPE_BULLET_LARGE = 0x2, IMPACT_TYPE_BULLET_AP = 0x3, IMPACT_TYPE_SHOTGUN = 0x4, IMPACT_TYPE_GRENADE_BOUNCE = 0x5, IMPACT_TYPE_GRENADE_EXPLODE = 0x6, IMPACT_TYPE_ROCKET_EXPLODE = 0x7, IMPACT_TYPE_PROJECTILE_DUD = 0x8, IMPACT_TYPE_COUNT = 0x9, }; enum weapInventoryType_t { WEAPINVENTORY_PRIMARY = 0x0, WEAPINVENTORY_OFFHAND = 0x1, WEAPINVENTORY_ITEM = 0x2, WEAPINVENTORY_ALTMODE = 0x3, WEAPINVENTORYCOUNT = 0x4, }; enum OffhandClass_t { OFFHAND_CLASS_NONE = 0x0, OFFHAND_CLASS_FRAG_GRENADE = 0x1, OFFHAND_CLASS_SMOKE_GRENADE = 0x2, OFFHAND_CLASS_COUNT = 0x3, }; enum weapStance_t { WEAPSTANCE_STAND = 0x0, WEAPSTANCE_DUCK = 0x1, WEAPSTANCE_PRONE = 0x2, WEAPSTANCE_NUM = 0x3, }; enum weapOverlayReticle_t { WEAPOVERLAYRETICLE_NONE = 0x0, WEAPOVERLAYRETICLE_CROSSHAIR = 0x1, WEAPOVERLAYRETICLE_NUM = 0x2, }; enum weaponIconRatioType_t { WEAPON_ICON_RATIO_1TO1 = 0x0, WEAPON_ICON_RATIO_2TO1 = 0x1, WEAPON_ICON_RATIO_4TO1 = 0x2, WEAPON_ICON_RATIO_COUNT = 0x3, }; enum weapProjExposion_t { WEAPPROJEXP_GRENADE = 0x0, WEAPPROJEXP_MOLOTOV = 0x1, WEAPPROJEXP_ROCKET = 0x2, WEAPPROJEXP_NONE = 0x3, WEAPPROJEXP_NUM = 0x4, }; typedef const char FxEffectDef_t; typedef const char snd_alias_list_t; typedef const char Material_t; struct WeaponDef_t { const char *szInternalName; const char *szDisplayName; const char *szOverlayName; const char *szViewModelName; const char *szHandModelName; int unknown; const char *szXAnims[22]; const char *szModeName; int playerAnimType; weapType_t weapType; weapClass_t weapClass; ImpactType_t impactType; weapInventoryType_t inventoryType; OffhandClass_t offhandClass; weapStance_t stance; FxEffectDef_t *viewFlashEffect; FxEffectDef_t *worldFlashEffect; snd_alias_list_t *pickupSound; snd_alias_list_t *ammoPickupSound; snd_alias_list_t *projectileSound; snd_alias_list_t *pullbackSound; snd_alias_list_t *fireSound; snd_alias_list_t *fireSoundPlayer; snd_alias_list_t *unknown4[4]; snd_alias_list_t *fireLastSound; snd_alias_list_t *fireLastSoundPlayer; snd_alias_list_t *meleeSwipeSound; snd_alias_list_t *rechamberSound; snd_alias_list_t *rechamberSoundPlayer; snd_alias_list_t *reloadSound; snd_alias_list_t *reloadSoundPlayer; snd_alias_list_t *reloadEmptySound; snd_alias_list_t *reloadEmptySoundPlayer; snd_alias_list_t *reloadStartSound; snd_alias_list_t *reloadStartSoundPlayer; snd_alias_list_t *reloadEndSound; snd_alias_list_t *reloadEndSoundPlayer; snd_alias_list_t *altSwitchSound; snd_alias_list_t *raiseSound; snd_alias_list_t *putawaySound; snd_alias_list_t *noteTrackSoundA; snd_alias_list_t *noteTrackSoundB; snd_alias_list_t *noteTrackSoundC; snd_alias_list_t *noteTrackSoundD; FxEffectDef_t *shellEjectEffect; FxEffectDef_t *lastShotEjectEffect; Material_t *reticleCenter; Material_t *reticleSide; int iReticleCenterSize; int iReticleSideSize; int iReticleMinOfs; float vStandMove[3]; float vStandRot[3]; float vDuckedOfs[3]; float vDuckedMove[3]; float vDuckedRot[3]; float vProneOfs[3]; float vProneMove[3]; float vProneRot[3]; float fPosMoveRate; float fPosProneMoveRate; float fStandMoveMinSpeed; float fDuckedMoveMinSpeed; float fProneMoveMinSpeed; float fPosRotRate; float fPosProneRotRate; float fStandRotMinSpeed; float fDuckedRotMinSpeed; float fProneRotMinSpeed; const char *worldModel; Material_t *hudIcon; Material_t *modeIcon; int iStartAmmo; const char *szAmmoName; int iAmmoIndex; const char *szClipName; int iClipIndex; int iMaxAmmo; int iClipSize; int shotCount; const char *szSharedAmmoCapName; int iSharedAmmoCapIndex; int iSharedAmmoCap; int damage; int playerDamage; int iMeleeDamage; int iDamageType; int iFireDelay; int iMeleeDelay; int iFireTime; int iRechamberTime; int iRechamberBoltTime; int iHoldFireTime; int iMeleeTime; int iReloadTime; int iReloadEmptyTime; int iReloadAddTime; int iReloadStartTime; int iReloadStartAddTime; int iReloadEndTime; int iDropTime; int iRaiseTime; int iAltDropTime; int iAltRaiseTime; int quickDropTime; int quickRaiseTime; int fuseTime; float autoAimRange; float aimAssistRange; float aimAssistRangeAds; float aimPadding; float enemyCrosshairRange; int crosshairColorChange; float moveSpeedScale; float fAdsZoomFov; float fAdsZoomInFrac; float fAdsZoomOutFrac; Material_t *overlayMaterial; weapOverlayReticle_t overlayReticle; float overlayWidth; float overlayHeight; float fAdsBobFactor; float fAdsViewBobMult; float fHipSpreadStandMin; float fHipSpreadDuckedMin; float fHipSpreadProneMin; float hipSpreadStandMax; float hipSpreadDuckedMax; float hipSpreadProneMax; float fHipSpreadDecayRate; float fHipSpreadFireAdd; float fHipSpreadTurnAdd; float fHipSpreadMoveAdd; float fHipSpreadDuckedDecay; float fHipSpreadProneDecay; float fHipReticleSidePos; int iAdsTransInTime; int iAdsTransOutTime; float fAdsIdleAmount; float fHipIdleAmount; float adsIdleSpeed; float hipIdleSpeed; float fIdleCrouchFactor; float fIdleProneFactor; float fGunMaxPitch; float fGunMaxYaw; float swayMaxAngle; float swayLerpSpeed; float swayPitchScale; float swayYawScale; float swayHorizScale; float swayVertScale; float swayShellShockScale; float adsSwayMaxAngle; float adsSwayLerpSpeed; float adsSwayPitchScale; float adsSwayYawScale; float adsSwayHorizScale; float adsSwayVertScale; int bRifleBullet; int armorPiercing; int semiAuto; int bBoltAction; int aimDownSight; int bRechamberWhileAds; float adsViewErrorMin; float adsViewErrorMax; int bCookOffHold; int bClipOnly; int cancelAutoHolsterWhenEmpty; int suppressAmmoReserveDisplay; Material_t *killIcon; weaponIconRatioType_t killIconRatio; int flipKillIcon; int bNoPartialReload; int bSegmentedReload; int iReloadAmmoAdd; int iReloadStartAdd; const char *szAltWeaponName; unsigned int altWeaponIndex; int iDropAmmoMin; int iDropAmmoMax; int iExplosionRadius; int iExplosionInnerDamage; int iExplosionOuterDamage; int iProjectileSpeed; int iProjectileSpeedUp; const char *projectileModel; weapProjExposion_t projExplosion; FxEffectDef_t *projExplosionEffect; snd_alias_list_t *projExplosionSound; int bProjImpactExplode; float parallelBounce[23]; float perpendicularBounce[23]; FxEffectDef_t *projTrailEffect; int unknown2[4]; float fAdsAimPitch; float fAdsCrosshairInFrac; float fAdsCrosshairOutFrac; int adsGunKickReducedKickBullets; float adsGunKickReducedKickPercent; float fAdsGunKickPitchMin; float fAdsGunKickPitchMax; float fAdsGunKickYawMin; float fAdsGunKickYawMax; float fAdsGunKickAccel; float fAdsGunKickSpeedMax; float fAdsGunKickSpeedDecay; float fAdsGunKickStaticDecay; float fAdsViewKickPitchMin; float fAdsViewKickPitchMax; float fAdsViewKickYawMin; float fAdsViewKickYawMax; float fAdsViewKickCenterSpeed; float fAdsViewScatterMin; float fAdsViewScatterMax; float fAdsSpread; int hipGunKickReducedKickBullets; float hipGunKickReducedKickPercent; float fHipGunKickPitchMin; float fHipGunKickPitchMax; float fHipGunKickYawMin; float fHipGunKickYawMax; float fHipGunKickAccel; float fHipGunKickSpeedMax; float fHipGunKickSpeedDecay; float fHipGunKickStaticDecay; float fHipViewKickPitchMin; float fHipViewKickPitchMax; float fHipViewKickYawMin; float fHipViewKickYawMax; float fHipViewKickCenterSpeed; float fHipViewScatterMin; float fHipViewScatterMax; float fightDist; float maxDist; const char *aiVsAiAccuracyGraph; const char *aiVsPlayerAccuracyGraph; int accuracyGraphKnotCount[2]; int originalAccuracyGraphKnotCount[2]; int iPositionReloadTransTime; float leftArc; float rightArc; float topArc; float bottomArc; float accuracy; float aiSpread; float playerSpread; int minVertTurnSpeed; int minHorTurnSpeed; int maxVertTurnSpeed; int maxHorTurnSpeed; float pitchConvergenceTime; float yawConvergenceTime; float suppressTime; float maxRange; float fAnimHorRotateInc; float fPlayerPositionDist; const char *szUseHintString; const char *dropHintString; int iUseHintStringIndex; int dropHintStringIndex; float horizViewJitter; float vertViewJitter; const char *szScript; float fOOPosAnimLength[2]; int minDamage; int minPlayerDamage; float fMaxDamageRange; float fMinDamageRange; int unknown5[4]; float locationDamageMultipliers[19]; const char *fireRumble; const char *meleeImpactRumble; }; typedef enum { ANIM_BP_UNUSED = 0x0, ANIM_BP_LEGS = 0x1, ANIM_BP_TORSO = 0x2, ANIM_BP_BOTH = 0x3, NUM_ANIM_BODYPARTS = 0x4, } animBodyPart_t; typedef enum { IT_BAD = 0x0, IT_WEAPON = 0x1, IT_AMMO = 0x2, IT_HEALTH = 0x3, IT_HOLDABLE = 0x4, } itemType_t; typedef struct gitem_s { char *classname; char *pickup_sound; char *world_model; int giTag; char *icon; char *display_name; int quantity; itemType_t giType; int giAmmoIndex; int giClipIndex; int giSharedAmmoCapIndex; } gitem_t; typedef struct XBoneInfo_s { float bounds[2][3]; float offset[3]; float radiusSquared; } XBoneInfo_t; typedef struct XModelCollSurf_s { float mins[3]; float maxs[3]; int boneIdx; int contents; int surfFlags; } XModelCollSurf_t; typedef struct XModelHighMipBounds_s { float mins[3]; float maxs[3]; } XModelHighMipBounds_t; typedef struct XModelStreamInfo_s { XModelHighMipBounds_t *highMipBounds; } XModelStreamInfo_t; typedef struct XModel_s { char numBones; char numRootBones; unsigned __int16 *boneNames; char *parentList; byte unk[72]; XModelCollSurf_t *collSurfs; int numCollSurfs; int contents; XBoneInfo_t *boneInfo; vec3_t mins; vec3_t maxs; __int16 numLods; __int16 collLod; XModelStreamInfo_t streamInfo; int memUsage; const char *name; char flags; char bad; } XModel_t; typedef struct DObjSkeletonPartMatrix_s { float p1[4]; float p2[4]; } DObjSkeletonPartMatrix_t; typedef struct DSkelPartBits_s { int anim[4]; int control[4]; int skel[4]; } DSkelPartBits_t; typedef struct DSkel_s { DSkelPartBits_t *partBits; int timeStamp; DObjSkeletonPartMatrix_t *mat; } DSkel_t; typedef struct DObj_s { int *tree; DSkel_t skel; unsigned __int16 duplicateParts; int unk2; byte numModels; byte numBones; byte duplicatePartsSize; byte pad; XModel_t *models; } DObj_t; struct pmove_t { struct playerState_s *ps; usercmd_t cmd; usercmd_t oldcmd; int tracemask; int numtouch; int touchents[32]; vec3_t mins; vec3_t maxs; float xyspeed; int proneChange; byte mantleStarted; vec3_t mantleEndPos; int mantleDuration; }; struct __declspec(align(4)) pml_t { vec3_t forward; vec3_t right; vec3_t up; float frametime; int msec; int walking; int groundPlane; int almostGroundPlane; trace_t groundTrace; float impactSpeed; vec3_t previous_origin; vec3_t previous_velocity; int field_78; }; typedef struct { __int16 emptystring; __int16 allies; __int16 axis; __int16 current; __int16 damage; __int16 death; __int16 dlight; __int16 done; __int16 empty; __int16 entity; __int16 failed; __int16 fraction; __int16 goal; __int16 grenade; __int16 info_notnull; __int16 invisible; __int16 key1; __int16 key2; __int16 killanimscript; __int16 left; __int16 movedone; __int16 noclass; __int16 normal; __int16 pistol; __int16 plane_waypoint; __int16 player; __int16 position; __int16 primary; __int16 primaryb; __int16 prone; __int16 right; __int16 rocket; __int16 rotatedone; __int16 script_brushmodel; __int16 script_model; __int16 script_origin; __int16 spectator; __int16 stand; __int16 surfacetype; __int16 target_script_trigger; __int16 tempEntity; __int16 touch; __int16 trigger; __int16 trigger_use; __int16 trigger_use_touch; __int16 trigger_damage; __int16 trigger_lookat; __int16 truck_cam; __int16 worldspawn; __int16 binocular_enter; __int16 binocular_exit; __int16 binocular_fire; __int16 binocular_release; __int16 binocular_drop; __int16 begin; __int16 intermission; __int16 menuresponse; __int16 playing; __int16 none; __int16 dead; __int16 auto_change; __int16 manual_change; __int16 freelook; __int16 call_vote; __int16 vote; __int16 snd_enveffectsprio_level; __int16 snd_enveffectsprio_shellshock; __int16 snd_channelvolprio_holdbreath; __int16 snd_channelvolprio_pain; __int16 snd_channelvolprio_shellshock; __int16 tag_flash; __int16 tag_flash_11; __int16 tag_flash_2; __int16 tag_flash_22; __int16 tag_brass; __int16 j_head; __int16 tag_weapon; __int16 tag_player; __int16 tag_camera; __int16 tag_aim; __int16 tag_aim_animated; __int16 tag_origin; __int16 tag_butt; __int16 tag_weapon_right; __int16 back_low; __int16 back_mid; __int16 back_up; __int16 neck; __int16 head; __int16 pelvis; } stringIndex_t; struct __declspec(align(4)) bgs_s { byte animScriptData[736200]; int multiplayer; int root; int torso; int legs; int turning; int turnAnimEndTime; int frametime; float angle; struct XModel *(__stdcall *GetXModel)(const char *); void (__stdcall *CreateDObj)(struct DObjModel_s *, unsigned __int16, struct XAnimTree_s *, int, int, struct clientInfo_t *); unsigned __int16 (__stdcall *AttachWeapon)(struct DObjModel_s *, unsigned __int16, struct clientInfo_t *); struct DObj_s *(__stdcall *GetDObj)(int, int); void *(__stdcall *AllocXAnim)(int); char field_B3BFC[4043]; int field_B4BC8; int field_B4BCC; int field_B4BD0; int field_B4BD4; int field_B4BD8; int field_B4BDC; int field_B4BE0; int field_B4BE4; int field_B4BE8; int field_B4BEC; int field_B4BF0; int field_B4BF4; int field_B4BF8; }; struct cg_t { char gap0[1001887]; char field_F499F; }; struct cgs_t { char gap0[174419]; char field_2A953; }; struct centity_s { char gap0[547]; char field_223; }; struct clientStatic_t { char gap0[3002367]; char field_2DCFFF; }; struct __declspec(align(4)) scrCompilePub_t { char gap_0[20]; int bultinMeth; char gap_18[28]; int func_table_size; int gap_38[1024]; }; }