X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=client.h;h=57d50dd1bcfa3dce58ccd243943370dcd9f9a494;hb=6d89dcbc6b8565b1ee3cb7ec63213efde6c7d988;hp=1147c8acc78ef7abd36da3c0c3fa8a296f953e07;hpb=a118c522ef01a01fb7ddc188a7b0d6bb05404c38;p=xonotic%2Fdarkplaces.git diff --git a/client.h b/client.h index 1147c8ac..57d50dd1 100644 --- a/client.h +++ b/client.h @@ -35,6 +35,7 @@ typedef struct tridecal_s float texcoord2f[3][2]; float vertex3f[3][3]; float color4f[3][4]; + float plane[4]; // backface culling // how long this decal has lived so far (the actual fade begins at cl_decals_time) float lived; // if >= 0 this indicates the decal should follow an animated triangle @@ -214,6 +215,10 @@ typedef struct rtlight_s int particlecache_maxparticles; int particlecache_updateparticle; rtlight_particle_t *particlecache_particles; + + /// bouncegrid light info + float photoncolor[3]; + float photons; } rtlight_t; @@ -290,18 +295,6 @@ typedef struct dlight_s } dlight_t; -#define MAX_FRAMEGROUPBLENDS 4 -typedef struct framegroupblend_s -{ - // animation number and blend factor - // (for most models this is the frame number) - int frame; - float lerp; - // time frame began playing (for framegroup animations) - double start; -} -framegroupblend_t; - // this is derived from processing of the framegroupblend array // note: technically each framegroupblend can produce two of these, but that // never happens in practice because no one blends between more than 2 @@ -1215,6 +1208,7 @@ typedef struct client_state_s float movevars_maxairspeed; float movevars_stepheight; float movevars_airaccel_qw; + float movevars_airaccel_qw_stretchfactor; float movevars_airaccel_sideways_friction; float movevars_airstopaccelerate; float movevars_airstrafeaccelerate; @@ -1254,8 +1248,11 @@ typedef struct client_state_s // server entity number corresponding to a clientside entity unsigned short csqc_server2csqcentitynumber[MAX_EDICTS]; qboolean csqc_loaded; - vec3_t csqc_origin; - vec3_t csqc_angles; + vec3_t csqc_vieworigin; + vec3_t csqc_viewangles; + vec3_t csqc_vieworiginfromengine; + vec3_t csqc_viewanglesfromengine; + matrix4x4_t csqc_viewmodelmatrixfromengine; qboolean csqc_usecsqclistener; matrix4x4_t csqc_listenermatrix; char csqc_printtextbuf[MAX_INPUTLINE]; @@ -1273,6 +1270,9 @@ typedef struct client_state_s // freed on each level change size_t buildlightmapmemorysize; unsigned char *buildlightmapmemory; + + // used by EntityState5_ReadUpdate + skeleton_t *engineskeletonobjects; } client_state_t; @@ -1579,6 +1579,9 @@ typedef struct r_refdef_stats_s int bouncegrid_hits; int bouncegrid_splats; int bouncegrid_bounces; + int collisioncache_animated; + int collisioncache_cached; + int collisioncache_traced; int bloom; int bloom_copypixels; int bloom_drawpixels; @@ -1653,7 +1656,7 @@ typedef struct r_refdef_view_s int width; int height; int depth; - r_viewport_t viewport; + r_viewport_t viewport; // note: if r_viewscale is used, the viewport.width and viewport.height may be less than width and height // which color components to allow (for anaglyph glasses) int colormask[4]; @@ -1729,6 +1732,7 @@ typedef struct r_refdef_scene_s { entity_render_t *tempentities; int numtempentities; int maxtempentities; + qboolean expandtempentities; // renderable dynamic lights rtlight_t *lights[MAX_DLIGHTS]; @@ -1820,6 +1824,9 @@ typedef struct r_refdef_s float shadowpolygonfactor; float shadowpolygonoffset; + // how long R_RenderView took on the previous frame + double lastdrawscreentime; + // rendering stats for r_speeds display // (these are incremented in many places) r_refdef_stats_t stats; @@ -1828,5 +1835,8 @@ r_refdef_t; extern r_refdef_t r_refdef; +// warpzone prediction hack (CSQC builtin) +void CL_RotateMoves(const matrix4x4_t *m); + #endif