]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
client: Implement CL_Frame. Move client cvars out of host to cl_main
[xonotic/darkplaces.git] / client.h
index cec5b8e05e7495e0f705b163ff038a4bb924396e..159d3233a39be822aa6ab3a6414bcff4995ad07e 100644 (file)
--- a/client.h
+++ b/client.h
@@ -234,7 +234,7 @@ typedef struct effect_s
        vec3_t origin;
        double starttime;
        float framerate;
-       int modelindex;
+       dp_model_t *model;
        int startframe;
        int endframe;
        // these are for interpolation
@@ -576,7 +576,8 @@ typedef struct entity_render_s
        // MATERIALFLAG_MODELLIGHT uses these parameters
        float render_modellight_ambient[3];
        float render_modellight_diffuse[3];
-       float render_modellight_lightdir[3];
+       float render_modellight_lightdir_world[3];
+       float render_modellight_lightdir_local[3];
        float render_modellight_specular[3];
        // lightmap rendering (not MATERIALFLAG_MODELLIGHT)
        float render_lightmap_ambient[3];
@@ -737,6 +738,7 @@ typedef enum qw_downloadtype_e
 }
 qw_downloadtype_t;
 
+#ifdef CONFIG_VIDEO_CAPTURE
 typedef enum capturevideoformat_e
 {
        CAPTUREVIDEOFORMAT_AVI_I420,
@@ -788,6 +790,7 @@ typedef struct capturevideostate_s
        void *formatspecific;
 }
 capturevideostate_t;
+#endif
 
 #define CL_MAX_DOWNLOADACKS 4
 
@@ -917,8 +920,10 @@ typedef struct client_static_s
        // extra user info for the "connect" command
        char connect_userinfo[MAX_USERINFO_STRING];
 
+#ifdef CONFIG_VIDEO_CAPTURE
        // video capture stuff
        capturevideostate_t capturevideo;
+#endif
 
        // crypto channel
        crypto_t crypto;
@@ -1153,7 +1158,6 @@ typedef struct client_state_s
        float sensitivityscale;
        csqc_vidvars_t csqc_vidvars;    //[515]: these parms must be set to true by default
        qboolean csqc_wantsmousemove;
-       qboolean csqc_paused; // vortex: int because could be flags
        struct model_s *csqc_model_precache[MAX_MODELS];
 
        // local amount for smoothing stepups
@@ -1529,6 +1533,8 @@ void CL_Locs_FindLocationName(char *buffer, size_t buffersize, vec3_t point);
 // cl_main
 //
 
+double CL_Frame(double time);
+
 void CL_Shutdown (void);
 void CL_Init (void);
 
@@ -1570,7 +1576,7 @@ void CL_ClientMovement_Replay(void);
 void CL_ClearTempEntities (void);
 entity_render_t *CL_NewTempEntity (double shadertime);
 
-void CL_Effect(vec3_t org, int modelindex, int startframe, int framecount, float framerate);
+void CL_Effect(vec3_t org, dp_model_t *model, int startframe, int framecount, float framerate);
 
 void CL_ClearState (void);
 void CL_ExpandEntities(int num);
@@ -1588,6 +1594,20 @@ float CL_KeyState (kbutton_t *key);
 const char *Key_KeynumToString (int keynum, char *buf, size_t buflength);
 int Key_StringToKeynum (const char *str);
 
+//
+// cl_cmd.c
+//
+/// adds the string as a clc_stringcmd to the client message.
+/// (used when there is no reason to generate a local command to do it)
+void CL_ForwardToServer (const char *s);
+
+/// adds the current command line as a clc_stringcmd to the client message.
+/// things like godmode, noclip, etc, are commands directed to the server,
+/// so when they are typed in at the console, they will need to be forwarded.
+void CL_ForwardToServer_f (cmd_state_t *cmd);
+void CL_InitCommands(void);
+
+
 //
 // cl_demo.c
 //
@@ -1604,6 +1624,8 @@ void CL_Record_f(cmd_state_t *cmd);
 void CL_PlayDemo_f(cmd_state_t *cmd);
 void CL_TimeDemo_f(cmd_state_t *cmd);
 
+void CL_Demo_Init(void);
+
 //
 // cl_parse.c
 //