mirror of
https://github.com/FWGS/xash3d-fwgs
synced 2024-11-23 02:15:55 +01:00
5e0a0765ce
The `.editorconfig` file in this repo is configured to trim all trailing whitespace regardless of whether the line is modified. Trims all trailing whitespace in the repository to make the codebase easier to work with in editors that respect `.editorconfig`. `git blame` becomes less useful on these lines but it already isn't very useful. Commands: ``` find . -type f -name '*.h' -exec sed --in-place 's/[[:space:]]\+$//' {} \+ find . -type f -name '*.c' -exec sed --in-place 's/[[:space:]]\+$//' {} \+ ```
106 lines
2.9 KiB
C
106 lines
2.9 KiB
C
/***
|
|
*
|
|
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
|
|
*
|
|
* This product contains software technology licensed from Id
|
|
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* Use, distribution, and modification of this source code and/or resulting
|
|
* object code is restricted to non-commercial enhancements to products from
|
|
* Valve LLC. All other use, distribution, or modification is prohibited
|
|
* without written permission from Valve LLC.
|
|
*
|
|
****/
|
|
|
|
#ifndef CL_ENTITY_H
|
|
#define CL_ENTITY_H
|
|
|
|
typedef struct efrag_s
|
|
{
|
|
struct mleaf_s *leaf;
|
|
struct efrag_s *leafnext;
|
|
struct cl_entity_s *entity;
|
|
struct efrag_s *entnext;
|
|
} efrag_t;
|
|
|
|
typedef struct
|
|
{
|
|
byte mouthopen; // 0 = mouth closed, 255 = mouth agape
|
|
byte sndcount; // counter for running average
|
|
int sndavg; // running average
|
|
} mouth_t;
|
|
|
|
typedef struct
|
|
{
|
|
float prevanimtime;
|
|
float sequencetime;
|
|
byte prevseqblending[2];
|
|
vec3_t prevorigin;
|
|
vec3_t prevangles;
|
|
|
|
int prevsequence;
|
|
float prevframe;
|
|
|
|
byte prevcontroller[4];
|
|
byte prevblending[2];
|
|
} latchedvars_t;
|
|
|
|
typedef struct
|
|
{
|
|
// Time stamp for this movement
|
|
float animtime;
|
|
|
|
vec3_t origin;
|
|
vec3_t angles;
|
|
} position_history_t;
|
|
|
|
typedef struct cl_entity_s cl_entity_t;
|
|
|
|
#define HISTORY_MAX 64 // Must be power of 2
|
|
#define HISTORY_MASK ( HISTORY_MAX - 1 )
|
|
|
|
#include "entity_state.h"
|
|
#include "event_args.h"
|
|
|
|
struct cl_entity_s
|
|
{
|
|
int index; // Index into cl_entities ( should match actual slot, but not necessarily )
|
|
qboolean player; // True if this entity is a "player"
|
|
|
|
entity_state_t baseline; // The original state from which to delta during an uncompressed message
|
|
entity_state_t prevstate; // The state information from the penultimate message received from the server
|
|
entity_state_t curstate; // The state information from the last message received from server
|
|
|
|
int current_position; // Last received history update index
|
|
position_history_t ph[HISTORY_MAX]; // History of position and angle updates for this player
|
|
|
|
mouth_t mouth; // For synchronizing mouth movements.
|
|
|
|
latchedvars_t latched; // Variables used by studio model rendering routines
|
|
|
|
// Information based on interplocation, extrapolation, prediction, or just copied from last msg received.
|
|
//
|
|
float lastmove;
|
|
|
|
// Actual render position and angles
|
|
vec3_t origin;
|
|
vec3_t angles;
|
|
|
|
// Attachment points
|
|
vec3_t attachment[4];
|
|
|
|
// Other entity local information
|
|
int trivial_accept;
|
|
|
|
struct model_s *model; // cl.model_precache[ curstate.modelindes ]; all visible entities have a model
|
|
struct efrag_s *efrag; // linked list of efrags
|
|
struct mnode_s *topnode; // for bmodels, first world node that splits bmodel, or NULL if not split
|
|
|
|
float syncbase; // for client-side animations -- used by obsolete alias animation system, remove?
|
|
int visframe; // last frame this entity was found in an active leaf
|
|
colorVec cvFloorColor;
|
|
};
|
|
|
|
#endif//CL_ENTITY_H
|