]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
improved setinfo handling so that quakeworld works much better now (name/topcolor...
[xonotic/darkplaces.git] / client.h
index f24fe71e6aed73caf2088404dcb5a69a1dd6d363..246d425eb4fdb2aa990daeff040c1d88b8b6f34a 100644 (file)
--- a/client.h
+++ b/client.h
@@ -589,7 +589,8 @@ typedef struct particle_s
        float           time2; // used for snow fluttering and decal fade
        float           bounce; // how much bounce-back from a surface the particle hits (0 = no physics, 1 = stop and slide, 2 = keep bouncing forever, 1.5 is typical)
        float           gravity; // how much gravity affects this particle (1.0 = normal gravity, 0.0 = none)
-       float           friction; // how much air friction affects this object (objects with a low mass/size ratio tend to get more air friction)
+       float           airfriction; // how much air friction affects this object (objects with a low mass/size ratio tend to get more air friction)
+       float           liquidfriction; // how much liquid friction affects this object (objects with a low mass/size ratio tend to get more liquid friction)
        unsigned char           color[4];
        unsigned short owner; // decal stuck to this entity
        model_t         *ownermodel; // model the decal is stuck to (used to make sure the entity is still alive)
@@ -652,6 +653,12 @@ typedef struct client_state_s
        vec3_t mvelocity[2], velocity;
        // update by server, can be used by mods for zooming
        vec_t mviewzoom[2], viewzoom;
+       // if true interpolation the mviewangles and other interpolation of the
+       // player is disabled until the next network packet
+       // this is used primarily by teleporters, and when spectating players
+       // special checking of the old fixangle[1] is used to differentiate
+       // between teleporting and spectating
+       qboolean fixangle[2];
 
        // client movement simulation
        // these fields are only updated by CL_ClientMovement (called by CL_SendMove after parsing each network packet)
@@ -661,6 +668,8 @@ typedef struct client_state_s
        qboolean movement_needupdate;
        // indicates the queue has been updated and should be replayed
        qboolean movement_replay;
+       // timestamps of latest two predicted moves for interpolation
+       double movement_time[2];
        // simulated data (this is valid even if cl.movement is false)
        vec3_t movement_origin;
        vec3_t movement_oldorigin;
@@ -985,6 +994,7 @@ void CL_Effect(vec3_t org, int modelindex, int startframe, int framecount, float
 
 void CL_ClearState (void);
 void CL_ExpandEntities(int num);
+void CL_SetInfo(const char *key, const char *value, qboolean send, qboolean allowstarkey, qboolean allowmodel, qboolean quiet);
 
 
 int  CL_ReadFromServer (void);